正则表达式是一种特殊的字符串模式用于匹配一组字符串
^会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置 |
$会匹配行或字符串的结尾 |
不会消耗任何芓符只匹配一个位置,常用于匹配单词边界 |
匹配字母数字,下划线. |
匹配除了换行符以外的任何字符这个算是"\w"的加强版"\w"不能匹配空格 |
字符組匹配包含括号内元素的字符 还可以写成[a-z] |
匹配任意不是字母数字,下划线 的字符 |
匹配任意不是空白符的字符 |
匹配不是单词开头或结束的位置 |
匹配除了abc以外的任意字符 |
关于量词所涉及到的重要的三个概念
贪婪量词会首先匹配整个字符串尝试匹配时,它会选定尽可能多的内嫆如果失败则回退一个字符,然后再次尝试回退的过程就叫做回溯
它会每次回退一个字符,直到找到匹配的内容或者没有字符可以回退
这种方法对资源消耗很大
它从目标的起始位置开始尝试匹配,每次检查一个字符并寻找它要匹配的内容,如此循环直到字符结尾处
占有量词会覆盖事个目标字符串,然后尝试寻找匹配内容 但它只尝试一次,不会回溯
重复1次或更多次但尽可能少重复,与上面一样只是至少要重复1次 |
重复0次或1次,但尽可能少重复如 "aaacb" 正则 "a.??b" 只会取到最后的三个字符"acb" |
重复n到m次,但尽可能少重复如 "aaaaaaaa" 正则 "a{0,m}" 因为最少是0次所鉯取到结果为空 |
重复n次以上,但尽可能少重复如 "aaaaaaa" 正则 "a{1,}" 最少是1次所以取到结果为 "a" |