linux 正则表达式

标准正则表达式

 

^   匹配行的开始。


$  匹配行的结尾


.  匹配单个字符(除行尾)


[] 匹配字符集

$ echo -e "Call\nTall\nBall" | sed -n '/[CT]all/ p'
Call
Tall


[^] 排除字符集

$ echo -e "Call\nTall\nBall" | sed -n '/[^CT]all/ p'
Ball

[-]字符范围。

$ echo -e "Call\nTall\nBall" | sed -n '/[C-Z]all/ p' 

Call
Tall


\? ,\+ ,*

分别对应0次到1次,一次到多次,0次到多次匹配。

 

{n} ,{n,} ,{m, n}

精确匹配N次,至少匹配N次,匹配M-N次

 

|  

或操作。

echo -e "str1\nstr2\nstr3\nstr4" | sed -n '/str\(1\|3\)/ p'

str1
str3


POSIX兼容的正则

主要包含

POSIX定义的character class只能在中括号内使用。例如,[[:upper:]ab]匹配大写字母字符和”a”,”b”。

[:word:]是附加的非POSIX的character class,[:word:]表示[:alnum:]和下划线。

 

 

 

元字符

\s    匹配单个空白内容

$ echo -e "Line\t1\nLine2" | sed -n '/Line\s/ p'
Line 1


\S    匹配单个非空白内容。

 

\w   单个单词、

\W  非单词。

 

参考http://blog.jobbole.com/109088/http://blog.jobbole.com/109088/

https://www.cnblogs.com/lovers/p/POSIXREGEX.html

posted @ 2018-02-26 23:52  fanren224  阅读(129)  评论(0编辑  收藏  举报