基本正则表达式:REGular EXPression(REGEXP)



一、元字符:

  1. .  :匹配任意单个字符;

  2. [] :匹配指定范围内的任意单个字符;

  3. [^]:匹配指定范围外的任意单个字符。

PS:常用字符集合

    [:digit:] —— 数字集合

    [:lower:] —— 小写字母集合

    [:upper:] —— 大写字母集合

    [:space:] —— 空格

    [:alpha:] —— 所有字母集合

    [:alnum:] —— 所有字母和数字集合



二、次数匹配:

  1. * : 匹配其前面的字符任意次;

  2. .* :匹配任意长度的任意字符;

  3. \? :匹配其前面的字符至少一次 ; 

  4. \{m,n\}:匹配其前面的字符至少m次,最多n次。

PS:正则表达式默认情况工作在贪婪模式下,即匹配符合表达式的最大长度字符串。


三、位置锚钉:

  1. ^ :锚钉行首,此字符后面的内容必须出现在行首;

  2. $ :锚钉行尾,此字符前面的内容必须出现在行尾;

  3. ^$:空白行(锚钉刚开始就结束的行);

  4. \<或\b:锚钉词首,其后面的任意字符必须作为单词(非英语意义上的单词)首部出现;

  5. \>或\b:锚钉词尾,其前面的任意字符必须作为单词(非英语意义上的单词)尾部出现。

    例如:\<root\>匹配root这个单词。


四、分组:

  1. \(\):匹配分组内容,将小括号中的内容作为一个整体去匹配。

    例如:\(ab\)*表示匹配“ab”任意次。

  2. 后向引用(有人也称为前向引用):在使用分组的前提下使用。

    \1 —— 引用第一个左括号以及与之对应的右括号所包含的所有内容(无论是否出现括号嵌套)

    \2 —— 引用第二个左括号以及与之对应的右括号所包含的所有内容(同上)

    \3 —— ...(依次类推)...

    例如以下三行内容:

        He like his liker.

        She love her lover.

        He like her lover.

    表达式:l..e  可以匹配每一行;

    表达式:\(l..e\).*\1  只能匹配前两行。




扩展正则表达式:(区别于基本正则表达式)



  1. ? :次数匹配,匹配其前面的字符最多一次(注意:此处前面没有\);

  2. + :次数匹配,匹配其前面的字符至少一次(注意:基本正则表达式没有此元字符);

  3. {m,n}:次数匹配,用法同基本正则表达式 (花括号前面不需要使用\);

  4. ():分组,真正意义上的分组(不需要使用\),同样支持后向引用;

  5. | :或者。例如:a|b 匹配a或者b,C|cat 匹配C或者cat(匹配整个左边或右边)。



over.