正则表达式入门

98 阅读2分钟

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

入门

元字符

\b:元字符,代表着单词的开头或结尾,也就是单词的分界处。

. : 元字符,匹配除了换行符之外的任意字符。

\d:元字符,匹配一个数字。例子:0\d\d-\d\d\d\d\d\d\d\d或者0\d{2}-d{8} 用来匹配电话号码。

\s:匹配任意的空白符。

\w:匹配字母或数字或下划线或汉字等。

^:匹配字符串的开始。

对应匹配字符串的结束。 例子:如果要求你填写的QQ号必须为5位到12位数字时可使用^\\d{5,12}

字符转义

\:字符转义,使用\.和\*来匹配元字符。

重复

*:*连在一起就意味着任意数量的不包含换行的字符。

+:重复一次或者更多次

?:重复零次或一次

{n}:重复n次

{n,}:重复n次或者更多次

{n,m}:重复n到m次

分支条件

|:把不同的规则分隔开。例子:0\d{2}-\d{8}|0\d{3}-\d{7}。匹配三位区号,8位本地号和思维区号,7位本地号。

分组

():你可以用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数。例如:(\d{1,3}\.){3}\d{1,3} 匹配到1到3位数字加一个英文句号重复3次,最后再加上一个一到三位的数字。

反义

有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义。

\W:匹配任意不是字母,数字,下划线,汉字的字符

\S:匹配任意不是空白符的字符

\D:匹配任意非数字的字符

\B:匹配不是单词开头或结束的位置

[^x]:匹配除了x以外的任意字符