稍微记一下正则表达式的符号:
符号 | 符号用途说明 |
\ | 将下一个字符标记为一个特殊字符,或一个原义字符,或一个向后引用,或一个八进制转义字符 如:\n 表示换行, \\ 表示 \ 。 |
^ | 匹配字符串的开始位置,如果设置了RegExp对象的Multiline属性,则 ^ 也匹配 \n 或 \r之后的位置。 |
$ | 匹配字符串输入结束位置,若设置了RegExp对象的Multiline属性,则 $ 也匹配 \n 或 \r之前的位置。 |
{n} | n是一个非负整数,匹配确定的n次,如:o{2} 能匹配 food 中的 oo 但不能匹配 boy中的o,是 foood 则只匹配一次,fooood则匹配2次 |
{n,} | n是一个非负整数,至少匹配n次,如:o{2,} 可以匹配 foood中的o,但 boy中的o则不行。 若为o{0,},则匹配任意个数的o,有没有o都可以。 |
[a-z] | 字符范围,可以是0-9 或 a-z的形式 |
* | 匹配其前面的字符0此或多次 |
(pattern) | 匹配pattern并获得这一匹配,获取的匹配可以从产生的 Matches 集合中得到 ,其实就是把括号中的内容看成一个整体 (或者说一个原子元素,不知这么说对不对)。 |
+ | 匹配前面的子表达式一次或多次,等价于{1,} |
,
? | 用途一:匹配前面的表达式字符1此或0次,等价于{0,1}。 用途二:当该限制符紧跟其他任何一个限制符后时,表示非贪婪比坏模式。 (其他限制符包括: *, +, ?, {n}, {n,}, {n,m})。非贪婪模式尽可能少的匹配所搜索的字符串, 如:对于字符串 aaaa,a+?将匹配一个o,而o+将匹配所有o。 |
. | 匹配除 \n 之外的任何字符,若要匹配包含 \n,可用:[.\n] |
\w | 匹配包括下划线的单词字符,包括数字,字符,下划线,等价于:[0-9a-zA-Z_] |
[^xyz] | 匹配任何不包含xyz的字符 |
\W | 匹配不包含单词字符的任何字符,等价于[^0-9a-zA-Z_] |
\b | 匹配单词中的边界,即单词和空格间的位置,如 ak\b 可以匹配 aknowledge 中的ak,但 oo\b 不能匹配loop 中的oo. |
\un | 匹配n,n是一个由4位十六进制数组成的unicode字符,比如中文字符是:\u4200-\u9fa5. |
\d | 匹配一个数组,等价于[0-9] |
\D | 匹配一个非数字,等价于[^0-9] |
待续。。。