各种正则
http://blog.csdn.net/xeroo/article/details/593755
在各種常用的工具中,
正則表達(dá)式如此的相似卻又不同。
下表列出了一些常用的正則表達(dá)式,以及其不同之處。
項(xiàng)目總多,遺漏必有不少,請各位看官不吝指出。
以perl的正則為基準(zhǔn),不同的用法以粉紅色標(biāo)出。
(xhchen8018@yahoo.com.cn)
(注意這里的斜杠都寫反了) 1. sed awk grep 不支持\w \d之類的元字符,但是支持+,*的操作
在各種常用的工具中,
正則表達(dá)式如此的相似卻又不同。
下表列出了一些常用的正則表達(dá)式,以及其不同之處。
項(xiàng)目總多,遺漏必有不少,請各位看官不吝指出。
以perl的正則為基準(zhǔn),不同的用法以粉紅色標(biāo)出。
(xhchen8018@yahoo.com.cn)
(注意這里的斜杠都寫反了) 1. sed awk grep 不支持\w \d之類的元字符,但是支持+,*的操作
| grep 2.5.1 | egrep 2.5.1 | sed 3.02 sed 4.07 | awk 3.1.1 | perl 5.8.0 | vim 6.1 | JavaScript ?? | |
| 轉(zhuǎn)義 | / | / | / | / | / | / | / |
| 行頭 | ^ | ^ | ^ | ^ | ^ | ^ | ^ |
| 行尾 | $ | $ | $ | $ | $ | $ | $ |
| n個(gè) | / | ? | / | 或/ 僅定義 --posix 或 --re-interval有效(要表達(dá)}和 沒有定義--posix或--re-interval時(shí),不能用的語法, /}/{同義 | ? | / | ? |
| ? | * | * | * | *或/*, (要表達(dá)*,得用//*) | * | * | * |
| ? | /+ | + | /+ | +或/+, (要表達(dá)+, 得用//+) | + | /+ | + |
| ? | /? | ? | /? | ?或/?, (要表達(dá)?, 得用//?) | ? | /? | ? |
| 任意字符 | . | . | . | . 含/n. | . /s修飾后則含/n | . 除/n | . 除/n |
| (pat) 匹配并獲結(jié)果 | /(pat/) | (pat) | /(pat/) | (pat)或/(pat/) (要表達(dá)括號,用//( //) ) | (pat) | /(pat/) | (pat) |
| (?:pat) 匹配但不獲結(jié)果 | 不支持 | 不支持 | 不支持 | 不支持 | (?:pat) | 不支持 | (?:pat) |
| (?=pat) 等于預(yù)查 | 不支持 | 不支持 | 不支持 | 不支持 | (?=pat) | 不支持 | (?=pat) |
| (?!pat) 不等預(yù)查 | 不支持 | 不支持 | 不支持 | 不支持 | (?!pat) | 不支持 | (?!pat) |
| | 或 | /| | | | /| | |或/| (要表達(dá)|,得用//|) | | | /| | | |
| 其中任意字符 | [xyz] | [xyz] | [xyz] | [xyz] | [xyz] | [xyz] | [xyz] |
| [.ch.] [=ch=] | 不支持 | 不支持 | [.ch.] | 不支持 | 不支持 | 不支持 | 不支持 |
| 單詞邊界 /b | /b | /b | /b | 不支持 | /b | 不支持 | /b |
| 非單詞邊界 /B | /B | /B | /B | 不支持 | /B | 不支持 | /B |
| 單詞左右邊界 <> | /< /> | /< /> | /< /> | 不支持 (><和/>/<和//>//<同義 | 不支持(><和/>/<同義 | /< /> | 不支持(><和/>/<同義 |
| 控制字符 /cx | 不支持 | 不支持 | /cx | 不支持 | /cx | 不支持 | /cx |
| 數(shù)字/d | 不支持 | 不支持 | 不支持 | 不支持 | /d | /d | /d |
| 非數(shù)字/D | 不支持 | 不支持 | 不支持 | 不支持 | /D | /D | /D |
| 換頁 /f | 不支持 | 不支持 | 高版本支持 | /f | /f | 另義 /f表示文件名字符 | /f |
| 換行 /n | 不支持 | 不支持 | 不支持 | /n | /n | /n | /n |
| 回車 /r | 不支持 | 不支持 | /r | /r | /r | /r | /r |
| 空白 /s | 不支持 | 不支持 | 不支持 | 不支持 | /s | /s | /s |
| 非空白 /S | 不支持 | 不支持 | 不支持 | 不支持 | /S | /S | /S |
| 制表符 /t | 不支持 | 不支持 | 高版本支持 | /t | /t | /t | /t |
| 垂直制表符 /v | 不支持 | 不支持 | 高版本支持 | /v | /v | 另義 /v表示very magic | /v |
| 單詞字符 /w [A-Za-z0-9_] | /w | /w | /w | 不支持 | /w | /w | /w |
| 非單詞字符 /W [^A-Za-z0-9] | /W | /W | /W | 不支持 | /W | /W | /W |
| /xn 16進(jìn)制 | 不支持 | 不支持 | 高版本支持 | /xn | /xn | 另義 /x表示[0-9A-Za-z] | /xn |
| /n 八進(jìn)制 | 不支持 | 不支持 | 不支持 | /n | /n | 不支持 | /n |
| /n 后向引用 | /n | /n | /n | /n 僅取結(jié)果可用 | /n | /n 僅取結(jié)果可用 | /n |
| [:alnum:] 字母和數(shù)字 | [:alnum:] | [:alnum:] | [:alnum:] | [:alnum:] | [:alnum:] | [:alnum:] | 不支持 |
| [:alpha:] 字母 | [:alpha:] | [:alpha:] | [:alpha:] | [:alpha:] | [:alpha:] | [:alpha:] | 不支持 |
| [:cntrl:] 控制字符 | [:cntrl:] | [:cntrl:] | [:cntrl:] | [:cntrl:] | [:cntrl:] | [:cntrl:] | 不支持 |
| [:digit:] 數(shù)字 | [:digit:] | [:digit:] | [:digit:] | [:digit:] | [:digit:] | [:digit:] | 不支持 |
| [:graph:] 可打印字符(不含空格) | [:graph:] | [:graph:] | [:graph:] | [:graph:] | [:graph:] | [:graph:] | 不支持 |
| [:lower:] 小寫 | [:lower:] | [:lower:] | [:lower:] | [:lower:] | [:lower:] | [:lower:] | 不支持 |
| [:print:] 可打印字符(含空格) | [:print:] | [:print:] | [:print:] | [:print:] | [:print:] | [:print:] | 不支持 |
| [:punct:] 標(biāo)點(diǎn) | [:punct:] | [:punct:] | [:punct:] | [:punct:] | [:punct:] | [:punct:] | 不支持 |
| [:space:] 空格 | [:space:] | [:space:] | [:space:] | [:space:] | [:space:] | [:space:] | 不支持 |
| [:upper:] 大寫字母 | [:upper:] | [:upper:] | [:upper:] | [:upper:] | [:upper:] | [:upper:] | 不支持 |
| [:xdigit:] 16進(jìn)制數(shù)字 | [:xdigit:] | [:xdigit:] | [:xdigit:] | [:xdigit:] | [:xdigit:] | [:xdigit:] | 不支持 |
| [:return:] | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | [:return:] | 不支持 |
| [:tab:] | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | [:tab:] | 不支持 |
| [:escape:] | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | [:escape:] | 不支持 |
| [:backspace:] | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | [:backspace:] | 不支持 |
總結(jié)
- 上一篇: linux删除空行 基本操作
- 下一篇: 正则表达式shell