揭开web前端的面纱

正则表达式符号含义

2017-03-22  本文已影响7人  ferrint

关键词:正则表达式

正则表达式是一种特殊的字符串模式,用于匹配一组字符串

元字符

字符 释义
"^" ^会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。
"$" $会匹配行或字符串的结尾
"\b" 不会消耗任何字符只匹配一个位置,常用于匹配单词边界
"\d" 匹配数字,
"\w" 匹配字母,数字,下划线.
"\s" 匹配空格
"." 匹配除了换行符以外的任何字符这个算是"\w"的加强版"\w"不能匹配空格
"[abc]" 字符组匹配包含括号内元素的字符 还可以写成[a-z]
"\W" 匹配任意不是字母,数字,下划线 的字符
"\S" 匹配任意不是空白符的字符
"\D" 匹配任意非数字的字符
"\B" 匹配不是单词开头或结束的位置
[^abc] 匹配除了abc以外的任意字符

量词
关于量词所涉及到的重要的三个概念

1.贪婪: 如"*"字符

贪婪量词会首先匹配整个字符串,尝试匹配时,它会选定尽可能多的内容,如果失败则回退一个字符,然后再次尝试回退的过程就叫做回溯,它会每次回退一个字符,直到找到匹配的内容或者没有字符可以回退。
这种方法对资源消耗很大

2.懒惰:如 "?"

它从目标的起始位置开始尝试匹配,每次检查一个字符,并寻找它要匹配的内容,如此循环直到字符结尾处。

3.占有:如"+"

占有量词会覆盖事个目标字符串,然后尝试寻找匹配内容 ,但它只尝试一次,不会回溯

字符 释义
"*"(贪婪) 重复零次或更多
"+"(懒惰) 重复一次或更多次
"?"(占有) 重复零次或一次
{n}" 重复n次
{n,m}" 重复n到m次
"{n,}" 重复n次或更多次

懒惰限定符

字符 释义
"*?" 重复任意次,但尽可能少重复 如 "acbacb" 正则 "a.*?b" 只会取到第一个"acb"
"+?" 重复1次或更多次,但尽可能少重复,与上面一样,只是至少要重复1次
"??" 重复0次或1次,但尽可能少重复,如 "aaacb" 正则 "a.??b" 只会取到最后的三个字符"acb"
"{n,m}?" 重复n到m次,但尽可能少重复,如 "aaaaaaaa" 正则 "a{0,m}" 因为最少是0次所以取到结果为空
"{n,}?" 重复n次以上,但尽可能少重复,如 "aaaaaaa" 正则 "a{1,}" 最少是1次所以取到结果为 "a"
上一篇 下一篇

猜你喜欢

热点阅读