标签:正则表达式
正则表达式: REGEXP REGuler EXPression,使用元字符和其他字符串来描述、匹配一系列符合某个句法规则的字符串。默认尽可能长得匹配(贪婪模式)。
元字符:
.:匹配任意单个字符(文件名通配中?表示任意单个字符)
[]:匹配指定范围内的单个字符
[^]:匹配指定范围外的单个字符
[:space:]:空白字符
[:puntt:]:所有标点符号
[:upper:]:所有大写字母
[:lower:]:所有小写字母
[:alpha:]:所有大小写字母
[:digit:]:所有数字
[:alnum:]:所有数字和大小写字母
字符次数匹配:
*:匹配其前字符任意次数(文件名通配中*表示任意长度的任意字符)
.*:任意长度的任意字符
\?:匹配其前字符一次或零次,可用可无
\{\}:\{m,n\}匹配其前字符至少m次,最多n次
eg:\{1,\}至少1次;\{0,3\}最多3次
位置锚定:
^:锚定行首,其后字符必须出现在行首
$:锚定行尾,其前字符必须出现在行尾
^$:空白行
\<:其后字符必须作为单词首部出现,可用\b代替
\>:其前字符必须作为单词尾部出现,可用\b代替
eg:\<root\>==\broot\b
分组:\(\)
eg:\(a,b\)*:ab出现任意次
小括号最主要的作用不是为了使其中的内容当作一个整体被看待,而是方便后面内容引用(后向引用)
eg:\1:调用前面第一个左括号及其与之对应右括号所包括的内容
\n:调用前面第n个左括号及其与之对应右括号所包括的内容
正则表达式:分为基本正则表达式和扩展正则表达式
扩展正则表达式:
字符匹配:
.,[],[^]与基本正则表达式一样
次数匹配
*,?:与基本正则表达式一样,?前不需要加\
+:其前字符至少一次==基本正则表达式中 \(1,\)
{m,n}:至少m次至多n次,与基本正则表达式花括号前少了\
锚定字符:
\< \> ^ $ \b 与基本正则表达式一样
分组:
():不需加\ 支持 \1,\2,\3,…
或者:
|:or 或者
eg:a|b a或者b
eg:C|cat==C或者cat(而非Cat或者cat)
grep:根据模式去搜索文本,并将符合模式的文本行显示出来。使用基本正则表达式及其定义的模式来过滤文本的命令。
模式:Pattern 文本字符和正则表达式的元字符组合而成的匹配条件
-i:忽略大小写
--color:被匹配到的字符加颜色显示
-o:只显示被匹配到的字符串
-v:反向查找,显示没有被模式匹配到的内容行
-E:使用扩展正则表达式
-A n:显示被匹配到的行和其后n行
-B n:显示被匹配到的行和其前n行
-C n:显示被匹配到的行和其前后各n行
egrep:使用扩展正则表达式及其定义的模式来过滤文本的命令。
egrep=grep -E
fgrep:fast grep 快速查找字符 不支持正则表达式,就按字符串搜索。
标签:正则表达式
原文地址:http://nanguo1987.blog.51cto.com/1078262/1737359