正则表达式语法简介

正则表达式

是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串,简单说,就是我们写个模板,然后去匹配字符串。

下面我们来看看一些基本的正则表达式的语法:

\\:将下个字符标记为一个特殊的字符、一个原义字符、一个向后引用或者一个八进制转义符例如“\\n”就是匹配一个换行符。

^:匹配开始位置,^(a)这个就匹配开头必须为a。

$:匹配结束位置,$(a)这个就匹配结尾必须为a。

*:匹配前面的子表达式零次或者多次,如xu*这个表达式就能够匹配“x”和“xuu”。

+:匹配前面的子表达式一次或者多次,如xu+这个表达式就能够匹配“xuu”和“xu”,但不能够匹配“x”,这个就是和*的区别。

?:匹配前面的子表达式零次或者一次,如xu?这个表达式就能够匹配“jian(guo)?”就可以匹配“jian”和“jianguo”。

{n}:n是一个非负数,匹配n次,如“guo{2}”,可以匹配“guoo”,不能匹配“guo”。

{n,}:n是一个非负数,匹配至少n次。

{n, m}:m、n都是非负数,最少匹配n次,最多匹配m次。

(pattern):匹配pattern并获取匹配结果。

(?:pattern):匹配pattern但不获取匹配结果。

x|y:匹配x或y,如“(xu|jian)guo”匹配“xuguo”或者“jianguo”。

[xyz]:字符集合,匹配所包含的任意字符。如“[abc]”可以匹配“apple”中的“a”。

[^xyz]:匹配未被包含的字符。

[a-z]:字符范围,匹配指定范围内的任意字符。

[^a-z]:匹配指定不在范围内的任意字符。

\b:匹配一个单词的边界,如“guo\b”可以匹配“xujianguo”中的“guo”。

\B:匹配非单词边界,如“jian\B”可以匹配“xujianguo”中的“jian”。

\d:匹配一个数字字符,等价于“[0-9]”。

\D:匹配一个非数字字符。

\f:匹配一个换页符。

推荐阅读更多精彩内容