正则表达式必知必会
一:特殊符号的作用
. : 可以匹配任何一个单个的字符 例如:c.t可以匹配到cat和cot等之类的;
\ : 转义符,加在特殊的符号前面,字符\后面永远跟着另一个字符;
[和] : 匹配[和]里面的字符 例如[ns]a,就会表示出na和sa;
如果我们要匹配[],这时我们需要这么做\[ \],使用\来对[ 和 ]进行转义
[0-9]等价于[0123456789] A-Z匹配A到Z的所有大写字母
^ : 对一个字符集合进行取非匹配;
空白元字符
[\b] 回退(并删除)一个字符
\f 换页符 \n 换行符 \r 回车符 \t 制表符(Tab键) \v 垂直制表符
匹配数字(与非数字)
\d : 任何一个数字字符( 等价于[0-9]) 例如 \[\d\]
\D : 任何一个非数字字符(等价于[^0-9])
匹配字母和数字(与非字母和数字)
\w : 任何一个字母数字字符(大小写均可)或下划线字符(等价于[a-zA-Z0-9_])
\W : 任何一个非字母数字字符或非下划线字符(等价于[^a-zA-Z0-9])
匹配空白字符(与非空白字符)
\s : 任何一个空白字符(等价于[\f\n\r\v])
\S : 任何一个非空白字符(等价于[^\f\n\r\v])
匹配一个或多个字符
+ : 匹配一个或多个字符(至少一个;不匹配零个字符的情况)
例如: a匹配a本身,a+将匹配一个或多个连续出现的a。[0-9]匹配任意单个数字,[0-9]+将匹配一个或多个连续的数字
注意:+是一个元字符,如果需要匹配+本身,就必须使用它的转义序列\+
[\w.]+将匹配字符集合[\w.](字母数字字符、下划线和.)的一次或多次重复出现
* : 匹配零个或多个字符
+与*的区别是:+匹配一个或多个字符(或字符集合),最少要匹配一次;*匹配零个或任意多个字符(或字符集合),可以没有匹配。
?: 匹配零个或者是一个字符 例如https?://[\w./]+
为重复匹配次数设定一个精确的值;
{3}意味着模式里的前一个字符(或字符集合)必须在原始文本里连续重复出现3次才算是一个匹配;如果只重复了两次,则不算是一个匹配。
为重复匹配次数设定一个区间
{2,4}的含义是最少重复2次、最多重复4次。
匹配“至少重复多少次”
例如:{3,}表示至少重复3次,与之等价的说法是:“必须重复3次或更多次”
*和+都是所谓的“贪婪型”元字符,它们在进行匹配时的行为模式是多多益善而不是适可而止的。
贪婪型元字符 懒惰型元字符
* *?
+ +?
{n,} {n,}?
单词边界
第一种边界是由限定符\b指定的单词边界。\b用来匹配一个单词的开始或结尾
\b匹配且只匹配一个位置,不匹配任何字符,用\bcat\b匹配到的字符串的长度是3个字符(c,a,t),不是5个字符
阅读(531) | 评论(0) | 转发(0) |