基本正则表达式:REGular EXPression(REGEXP)
一、元字符:
. :匹配任意单个字符;
[] :匹配指定范围内的任意单个字符;
[^]:匹配指定范围外的任意单个字符。
PS:常用字符集合
[:digit:] —— 数字集合
[:lower:] —— 小写字母集合
[:upper:] —— 大写字母集合
[:space:] —— 空格
[:alpha:] —— 所有字母集合
[:alnum:] —— 所有字母和数字集合
二、次数匹配:
* : 匹配其前面的字符任意次;
.* :匹配任意长度的任意字符;
\? :匹配其前面的字符至少一次 ;
\{m,n\}:匹配其前面的字符至少m次,最多n次。
PS:正则表达式默认情况工作在贪婪模式下,即匹配符合表达式的最大长度字符串。
三、位置锚钉:
^ :锚钉行首,此字符后面的内容必须出现在行首;
$ :锚钉行尾,此字符前面的内容必须出现在行尾;
^$:空白行(锚钉刚开始就结束的行);
\<或\b:锚钉词首,其后面的任意字符必须作为单词(非英语意义上的单词)首部出现;
\>或\b:锚钉词尾,其前面的任意字符必须作为单词(非英语意义上的单词)尾部出现。
例如:\<root\>匹配root这个单词。
四、分组:
\(\):匹配分组内容,将小括号中的内容作为一个整体去匹配。
例如:\(ab\)*表示匹配“ab”任意次。
后向引用(有人也称为前向引用):在使用分组的前提下使用。
\1 —— 引用第一个左括号以及与之对应的右括号所包含的所有内容(无论是否出现括号嵌套)
\2 —— 引用第二个左括号以及与之对应的右括号所包含的所有内容(同上)
\3 —— ...(一次类推)...
例如以下三行内容:
He like his liker.
She love her lover.
He like her lover.
表达式:l..e 可以匹配每一行;
表达式:\(l..e\).*\1 只能匹配前两行。
扩展正则表达式:(区别于基本正则表达式)
? :次数匹配,匹配其前面的字符最多一次(注意:此处前面没有\);
+ :次数匹配,匹配其前面的字符至少一次(注意:基本正则表达式没有此元字符);
{m,n}:次数匹配,用法同基本正则表达式 (花括号前面不需要使用\);
():分组,真正意义上的分组(不需要使用\),同样支持后向引用;
| :或者。例如:a|b 匹配a或者b,C|cat 匹配C或者cat(匹配整个左边或右边)。
over.
本文出自 “笨鸟学飞” 博客,请务必保留此出处http://yshun.blog.51cto.com/9570549/1718837
原文地址:http://yshun.blog.51cto.com/9570549/1718837