正则表达式解析

1、元字符

元字符是一些在正则表达式中有特殊用途、不代表它本身字符意义的一组字符
比如. * + ( ) $ / \ ? [ ] ^ { } - ! < >

  • 1、{}

2、Java中按照,切分

按照逗号切分需要转义,即, 但是\在正则中也是元字符,所以在java代码中应该写成\,

3、Pattern、Matcher

[https://blog.csdn.net/yin380697242/article/details/52049999]

4、贪婪模式和非贪婪模式

贪婪模式 就是趋向于最大长度的匹配
非贪婪模式 就是匹配上就可以 也相当于最短模式的匹配
默认是 贪婪模式
在量词后面加上一个问号 就变成非贪婪

5、限定符

  • 1、*
    匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
  • 2、+
    匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
  • 3、?
    匹配前面的子表达式零次或一次。例如,”do(es)?” 可以匹配 “do” 或 “does” 中的”do” 。? 等价于 {0,1}。
  • 4、{n}
    n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
  • 5、{n,}
    n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。’o{1,}’ 等价于 ‘o+’。’o{0,}’ 则等价于 ‘o*’。
  • 6、{n,m}
    m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,”o{1,3}” 将匹配 “fooooood” 中的前三个 o。’o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格

你可能感兴趣的:(正则表达式解析)