正则表达式 学习笔记

Posted 咖啡漩涡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式 学习笔记相关的知识,希望对你有一定的参考价值。

11.分组

你可以使用括号表示分组:

  • 通过使用 Mon|Tues|Wednes|Thurs|Fri|Satur|Sun)day 匹配一周中的某一天
  • (\\w*)ility  与 \\w*ility 相同。都是匹配一个由”ility”结尾的单词。稍后我们会讲解,为何第一种方法更加有用。
  • 表示匹配一对括号。
  • [()]表示匹配任意一个左括号或者一个右括号
  • (red|blue)表示匹配red或者blue或者是一个空字符串
  • abc()def与abcdef相同
  • (red|blue)?与(red|blue|)相同
  • \\w+(\\s+\\w+)表示匹配一个或多个由空格分隔的单词

示例

 \\w+\\W+\\w+\\W+\\w+  =  \\w+(\\W+\\w+){2}

 \\w+\\W+\\w+\\W+\\w+\\W+\\w+\\W+\\w+\\W+\\w+  =  \\w+(\\W+\\w+){5}

12.单词分隔符

  • \\b表示匹配一个单词分隔符
  • \\b\\w\\w\\w\\b表示匹配一个三字母单词
  • a\\ba表示匹配两个a中间有一个单词分隔符。这个正则表达式永远不会有匹配的字符,无论输入怎样的文本示例

 

 

13.换行符

一篇文本中可以有一行或多行,行与行之间由换行符分隔,比如

LINE一行文字

LINE BREAK 换行符

LINE一行文字

LINE BREAK 换行符

...

LINE一行文字

LINE BREAK 换行符

注意,所有的文本都是以一行结束的,而不是以换行符结束。但是,任意一行都可能为空,包括最后一行。行的起始位置,是在换行符和下一行首字符之间的空间。考虑到单词分隔符,文本的起始位置也可以当做是首行位置。最后一行是最后一行的尾字符和换行符之间的空间。考虑到单词分隔符,文本的结束也可以认为是行的结束。基于此概念:

  • ^表示匹配行的开始位置
  • $表示匹配行的结束位置
  • ^&表示一个空行
  • ^.*& 表示匹配全文内容,因为行的开始符号也是一个字符,"."会匹配这个符号。找到单独的一行,可以使用 ^.*?$
  • \\^\\$表示匹配字符串“^$”
  • [$]表示匹配一个$。但是,[^]不是合法的正则表达式。记住在方括号中,字符有不同的特殊含义。要想在方括号内匹配^,必须用[\\^]

14.文本分界

在很多的正则表达式实现中,将^和$作为文本的开始符号和结束符号。

还有一些实现中,用\\A和\\z作为文本的开始和结束符号。

15.捕获组

正则表达式(\\w*)ility表示匹配以ility结尾的词。第一个被捕获的部分是由\\w*控制的。比如,输入的文本内容中有单词accessibility,那么首先被捕获的部分是accessib。如果输入的文本中有单独的ility,则首先被捕获的是一个空字符串。

  

总结:

  • 字符: a b c d 1 2 3 4 etc.
  • 字符类: . [abc] [a-z] \\d \\w \\s
    • . 代表任何字符
    • \\d 表示“数字”
    • \\w   表示”字母”, [0-9A-Za-z_]
    • \\s   表示 “空格, 制表符,回车或换行符”
    • 否定字符类: [^abc] \\D \\W \\S
  • 重复: {4} {3,16} {1,} ? * +
    • ? 表示 “零次或一次”
    • * 表示 “大于零次”
    • + 表示 “一次或一次以上”
    • 如果不加上?,所有的重复都是最长匹配的(贪婪)
  • 分组: (Septem|Octo|Novem|Decem)ber
  • 词,行以及文本的分隔: \\b ^ $ \\A \\z
  • 转义字符: \\1 \\2 \\3 etc. (在匹配表达式和替换表达式中都可用)
  • 元字符: . \\ [ ] { } ? * + | ( ) ^ $
  • 在字符类中使用元字符: [ ] \\ - ^
  • 使用反斜杠可以忽略元字符: \\

以上是关于正则表达式 学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

javascript学习笔记-正则表达式-少写1000行代码的正则表达式

正则表达式学习笔记

JavaSE 学习笔记之正则表达式(二十五)

Java基础学习笔记十三 常用API之正则表达式DateDateFormatCalendar

正则表达式学习笔记

python学习笔记9:正则表达式