本章小结
正则表达式是表示字符串模式的对象,使用自己的语言来表达这些模式:
/abc/
:字符序列/[abc]/
:字符集中的任何字符/[^abc]/
:不在字符集中的任何字符/[0-9]/
:字符范围内的任何字符/x+/
:出现一次或多次/x+?/
:出现一次或多次,非贪婪模式/x*/
:出现零次或多次/x??/
:出现零次或多次,非贪婪模式/x{2,4}/
:出现两次到四次/(abc)/
:元组/a|b|c/
:匹配任意一个模式/\d/
:数字字符/\w/
:字母和数字字符(单词字符)/\s/
:任意空白字符/./
:任意字符(除换行符外)/\b/
:单词边界/^/
:输入起始位置/$/
:输入结束位置
正则表达式有一个test
方法来测试给定的字符串是否匹配它。 它还有一个exec
方法,当找到匹配项时,返回一个包含所有匹配组的数组。 这样的数组有一个index
属性,用于表明匹配开始的位置。
字符串有一个match
方法来对正确表达式匹配它们,以及search
方法来搜索字符串,只返回匹配的起始位置。 他们的replace
方法可以用替换字符串或函数替换模式匹配。
正则表达式拥有选项,这些选项写在闭合斜线后面。 i
选项使匹配不区分大小写。 g
选项使表达式成为全聚德,除此之外,它使replace
方法替换所有实例,而不是第一个。 y
选项使它变为粘性,这意味着它在搜索匹配时不会向前搜索并跳过部分字符串。 u
选项开启 Unicode 模式,该模式解决了处理占用两个代码单元的字符时的一些问题。
正则表达式是难以驾驭的强力工具。它可以简化一些任务,但用到一些复杂问题上时也会难以控制管理。想要学会使用正则表达式的重要一点是:不要将其用到无法干净地表达为正则表达式的问题。