正则表达式语法表
正则表达式是一种用于匹配字符串中字符组合的模式,通常被用于各种文本搜索和替换操作。
在JavaScript 中,正则表达式也是对象,这些模式被用于RegExp 的exec 和test 方法,以及String 的match 和replace 方法。
正则表达式有两种主要类型:基本正则表达式(BRE)和扩展正则表达式(ERE)。
BRE 是最基本的正则表达式类型,其语法类似于基本的字符匹配运算符。
而ERE 提供了更高级的功能,可以匹配更多的字符组合。
下面是常见的正则表达式元字符及其含义:
- . : 匹配除换行符以外的任意单个字符。
- ^ : 匹配行的开头。
- $ : 匹配行的结尾。
- * : 匹配前面的子表达式零次或多次。
例如,zo*能匹配"z"以及"zoo"。
- + : 匹配前面的子表达式一次或多次。
例如,"zo+"能匹配"zo"以及"zoo",但不能匹配"z"。
- ? : 匹配前面的子表达式零次或一次。
例如,do(es)?可以匹配"do"或"does"中的"do"。
- {n} : n是一个非负整数。
匹配确定的n次。
例如,o{2}不
匹配"Bob"中的"o",而是匹配"food"中的两个"o"。
- {n,} : n是一个非负整数。
至少匹配n次。
例如,o{2,}不匹配"Bob"中的"o",但匹配"foooood"中的所有"o"。
'o{1,3}'将匹配"o"和"ooo"。
- {n,m} : m和n均为非负整数,其中n <= m。
最少匹配n 次且最多匹配m次。
例如,o{1,3}将匹配"o"、"oo"或"ooo "。
注意:逗号和两个表达式之间必须有空格。
此外,还有一些特殊字符需要转义才能在正则表达式中使用,包括:
- \b : 匹配单词边界,例如:"er\b"可以匹配"neverwhere" 中的"er",但不能匹配"verb" 中的"er"。
- \B : 匹配非单词边界。
'er\B'将不匹配"neverwhere" 中的'er',但会匹配"verb" 中的'er'。
- \\ : 用于转义元字符。
- [...] : 定义一个字符集合。
例如,[abc]与a、b和c中的任何一个字符匹配。
以上是常用的正则表达式元字符及其含义,当然还有更多的元字符可以使用,可以根据实际需求灵活运用。