正则表达式

 

关于正式表达式

参考资料: http://events.jianshu.io/p/dc3dfb98dfbb

 

 

 

查找匹配类的规则

标识符 解释 示例
^ 匹配行首  
$ 匹配行末  
\< 匹配词首  
\> 匹配词末  
^$ 匹配空行  
\B 匹配非边界

aajavabb;  用法可以是: \Bjava, java\B, \Bjava\B

 

匹配次数的规则

标识符 解释 示例
. 任意字符  
\? 出现0次或一次 javaxx :  (java)?
\+ 至少出现一次  
* 任意次数  
\{m\}           {m} 出现m次 javajavajava: (java){2}  
\{m,\}          {m,} 至少m次 javajavajava: (java){2,}
\{,n\}           {,n} 至多n次 javajavajava: (java){,3}
\{m,n\}       {m,n} m 到 n 次 javajavajava: (java){2,3}

 

 

常用符号

标识符 解释 示例
[[:alpha:]] 匹配任意大小写字母,所有的字母 [a-zA-Z]
[[:lower:]] 小写字母 [a-z]
[[:upper:]] 大写字母 [A-Z]
[[:digit:]] 匹配0到9之间的任意单个数字 [0-9]
[[:alnum:]] 匹配任意数字或字母 [A-Za-z0-9]
[[:space:]] 匹配任意空白字符,包括"空格"、"tab键"等。  
[[:punct:]] 匹配任意标点符号  
[] 匹配指定范围内的任意单个字符,如[agh]表示只要匹配上"a","g", "h"的任意一个都算匹配上。  
[^  ] 和[]相反,表示指定范围外的任意单个字符  

 

 

贪婪与懒惰

比如这个字符串:aaabbb001002

贪婪(默认): aa.*00 —— 会匹配到 aaabbb001002 (黄色部分)

懒惰:aa.*?00 —— 会匹配到 aaabbb001002(黄色部分)

虽然贪婪是默认的匹配,但更多时候,我们想到的 “最小匹配”, 也就是懒惰的匹配方式。

 

posted @ 2023-10-27 20:43  aaacarrot  阅读(3)  评论(0编辑  收藏  举报