正则表达式特殊字符

特殊字符:

1)  ^ $ * ? + {2} {2,} {2,5} |

2) [] [^] [a-z] .

3) \s \S \w \W

4) [\u4E00-\u9FA5] () \d


解释如下:

1)  ^ 表示:以后面跟着的字符开头

     . 表示:任一字符

    * 表示:个数不限

    $ 表示: 以前面的字符结尾

regex_str = "^a.*3$"  以a开头,中间任意字符(不限字符个数),以3结尾的字符串

2) line = "boobby123"

(1) () 表示: 字符串提取模式,用于提取子字符串

regex_str = ".*(b.*b).*" ,提取出来结果:bb  (默认贪婪匹配模式,字符串从右往左匹配)

(2)? 表示:设置为非贪婪匹配模式

regex_str = ".*?(b.*b).*" ,从左边开始一个个匹配,匹配到第一个b则进入正则匹配模式,不论中间多少个字符,遇到b则停止,提取出来结果:boobb(左边部分.*?(b限定了非贪婪匹配模式,但是右边b).*仍是贪婪匹配模式,从右往左匹配)

(3) regex_str = ".*?(b.*?b).*" ,提取出来结果:boob

3) + 表示:前面字符至少出现一次

regex_str = ".*(b.+b).*",前面任意字符直到遇到b,中间任一字符且出现且此字符至少出现一次,之后再遇到b, line =

"boobaby123"提取出来结果:bab,  line = "boobaaby123"提取出来结果:baab

4) {2} 表示:前面字符出现2次

      {2,} 表示:前面字符出现2次及以上

      {2,5} 表示:前面字符出现2次到5次

regex_str = ".*(b.{1}b).*",  line = "boobbbaaby123"提取出来结果:bbb

regex_str = ".*(b.{2}b).*",  line = "boobbbaaby123"提取出来结果:baab

regex_str = ".*(b.{3,}b).*",  line = "boobbbaaby123"提取出来结果:bbaab

regex_str = ".*(b.{2,5}b).*",  line = "boobbbaaby123"提取出来结果:baab

5) | 表示: 或

regex_str = "(bobby | boobby)123)",字符串等于bobby或者boobby 均符合条件,  line = "boobby123"提取出来结果:boobby

regex_str = "((bobby | boobby)123)",  line = "boobby123" 提取第一层字符串(.group(1))出来结果:boobby123,提取第二层字符串(.group(2))出来结果:boobby

6) [] 表示:(1)满足[]中的任一字符均可;(2)区间;(3)[.*] 表示.,表示*, 即特殊字符置于[]中则表示原意思

regex_str = "([abcd]oobby123)", 第一个字符串abcd中任一均可,line = "boobby123"提取出来结果:boobby123,line = "eoobby123"提取不出来

regex_str = "(1[48357][0-9]{9})",以1开头,第二个字符[48357]中任一均可,后面的字符[0-9]中任一均可,但必须出现9次 (PS:手机号码匹配模式)

regex_str = "(1[48357][^1]{9})",以1开头,第二个字符[48357]中任一均可,后面的字符为1以外字符([^1] 非1),但必须出现9次

7) \s \S

regex_str = "(你\s好)", 表示: 你好之间存在空格

regex_str = "(你\S好)", 表示: 你好之间存在一个字符,且该字符不是空格

regex_str = "(你\S+好)", 表示: 你好之间存在至少一个字符,且该字符不是空格

你可能感兴趣的:(正则表达式特殊字符)