學習正則表達式

字符簡寫式php

字符簡寫式 描述 字符簡寫式 描述
\d 報警符 \w 單詞字符
[\b] 退格字符 \W 非單詞字符
\c x 控制字符 \0 空字符
\d 數字字符 \x xx 字符的十六進制
\D 非數字字符 \u xxx 字符的 Unicode 值
\o xxx 字符的八進制

匹配各類空白符html

字符簡寫式 描述 字符簡寫式 描述
\f 換頁符 \s 空白符
\h 水平空白符 \S 非空白符
\H 非水平空白符 \t 水平製表符
\n 換行符 \v 垂直製表符
\r 回車符 \V 非垂直製表符

在 sed 中使用正則git

  • 替換

 

$ echo Hello | sed s/Hello/Goodbye/
//Goodbye

* 插入github

 

 

$ sed 's/^/<h1>/; s/$/<\/h1>/p; q'
Hello Sed
//<h1>Hello Sed</h>

在 Perl 中使用正則:正則表達式

 

  • 替換

 

$ perl -ne 's/Hello/Goodbye/; print'
Hello
//Goodbye

* 插入express

 

 

$ perl -ne 's/^/<h1>/; s/$/<\/h1>/m; print;'
Hello Perl
//<h1>Hello Perl</h1>

匹配元字符的字面值瀏覽器

 

元字符:.^$*+?|(){}[]\-app

\Q$\E 或 \$匹配工具


正則表達式中的選項學習

選項 描述 選項 描述
(?d) Unix 中的行 (?i) 不區分大小寫
(?J) 容許重複的名字 (?m) 多行
(?s) 單行(dotall) (?u) Unicode
(?U) 默認最短匹配 (?x) 忽略空格和註釋
(?-…) 復原或關閉選項

Perl 語言中的修飾符

修飾符 描述
a 匹配\d、\s、\w 以及處於 ASCII 範圍內的 POSIX 字符
c 匹配失敗後停留在當前位置
d 使用默認的本地平臺規則
g 全局匹配
i 不區分大小寫
1 使用當前位置的規則
m 多行匹配
p 保留匹配的字符串
s 將字符串看作一行內容
u 匹配時使用 Unicode 規則
x 忽略空格及註釋

POSIX 字符組

字符組 描述
[[:alnum:]] 匹配字母及數字
[[:alpha:]] 匹配大小寫字母
[[:ascii:]] 匹配 ASCII 字符
[[:space:]] 匹配空格和製表符
[[:blank:]] 匹配空格字符
[[:ctrl:]] 匹配控制字符
[[:digit:]] 匹配數字
[[:graph:]] 匹配圖形字符
[[:lower:]] 匹配小寫字母
[[:print:]] 匹配可打印字符
[[:punct:]] 匹配標點符號
[[:upper:]] 匹配大寫字母
[[:word:]] 匹配單詞字符
[[:xdigit:]] 匹配十六進制數字
[[:^alpha:]] 匹配非字母字符

Unicode 中文:[\u4e00-\u9fa5]

量詞

語法 描述 語法 描述
? 零個或一個(可選) ?? 懶惰匹配零次或一次(可選)
+ 一個或多個 +? 懶惰匹配一次或屢次
* 零個或多個 *? 懶惰匹配零次或屢次
{n} 精確匹配 n 次 {n}? 懶惰匹配 n 次
{n,} 匹配 n 次或更屢次 {n,} 懶惰匹配 n 次或屢次
{m,n} 匹配 m 至 n 次 {m,n} 懶惰匹配 m 至 n 次
{0,1} 與? 相同
{1,} 與 + 相同
{0,} 與 * 相同
語法 描述
(?=exp) 正前瞻,匹配 exp 前的位置
(?!exp) 反前瞻,匹配後面不是 exp 的位置
(?<=exp) 正後顧,匹配 exp 後面的位置
(?<!exp) 反後顧,匹配前面不是 exp 的位置

Examples

國內電話號碼: ^(\(\d{3}\))\d{8}|(\(\d{4}\))\d{7,8}|\d{3}-\d{8}|\d{4}-\d{7,8}$
(010)1234567八、(0755)123456七、010-1234567八、0755-1234567

電子郵箱: [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?


強烈推薦: 《正則表達式 30 分鐘入門教程》

至於圖靈的《學習正則表達式》,我的不建議買,裏面的內容「30 分鐘」都有,若是想進一步學習正則表達式,推薦直接看《精通正則表達式(第 3 版)》或《正則表達式經典實例》。

另外推薦幾款正則工具:

  1. RegExr,可經過瀏覽器使用,或者下載 Windows 或 Mac 版。
  2. Reggy,可選擇不一樣的語言環境(PS:不一樣的語言環境下對正則的支持仍是有細微的差異的)
  3. RegexKitTool,筆者爲了測試 Cocoa 下對正則的支持開發的一款 Mac 下的正則工具。

Posted by XiaoYi_HD - 5月 22 2013
如需轉載,請註明: 本文來自 Esoft Mobile

相關文章
相關標籤/搜索