JS里的正则表达式

正则表达式,用于描述字符的模式。比如,「范冰冰」和「李冰冰」的共同模式是第二和第三个字是一样的。

按字面意思匹配

最简单的,判断一个词是不是包含 ing,那么/ing/就 ok 了。

代表一类字符的特殊符号

选择

[]

当然,编程时面临的问题肯定不会都这么简单。要匹配包含 car 或者 cat 的字符串,a 后面是 r 或 t 中间的一个,/ca[rt]/,中括号代表在括起来的字符中间选一个。

|

那如果要选择的多余一个字符呢?比如「ferret, ferry, ferrai」里面的一个。 /ferr(et|y|ai)/

重复

?

如果,一个字符可能出现也可能不出现呢?「pop」或「prop」其中一个。 /pr?op/。问号,表示它前面的字符可能出现也可不出现。

+

如果一个字符可能出现一次,但也可能连续出现很多次呢?比如,「wow, woow, wooooow」。/wo+w/

*

如果一个字符可能不出现,也可能出现一次,甚至连续多次,比如,「1, 10, 1000, 1000000」。 /10*/

{}

位置

单词边界

\b表示单词的边界,包括开始和结束。比如,要想匹配「google」或[gooooogle],/\bgo{2,}gle\b/,这时,就不会匹配「agoogle」。

字符串边界

字符串边界和单词边界的区别在于,字符串边界是针对输入的整个字符串而言的。比如,输入的字符串是hello, world!,字符串边界在「h」之前以及「!」之后。而单词边界在于两个单词的前后。表示字符串边界的符号分别是^$,分别表示字符串的开始和结束。

贪婪模式

零宽断言

ref

Back