4、限定符:
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*或+或?
或{n}或{n,}或{n,m}共 6 种。
*、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一
个?就可以实现非贪婪或最小匹配。
正则表达式的限定符有:
字符 描述
* 匹配前面的子表达式零次或多次。例如,zo*
能匹配 "z"
以及 "zoo"。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+'
能匹配 "zo"
以及 "zoo",但不能匹配
"z"。+
等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如, "do(es)?"
可以匹配 "do"
或 "does" 中
的"do" 。?
等价于 {0,1}。
{n} n
是一个非负整数。匹配确定的 n 次。例如,'o{2}'
不能匹配 "Bob"
中的 'o',但是
能匹配 "food"
中的两个 o。
{n,} n 是一个非负整数。至少匹配 n 次。例如,'o{2,}'
不能匹配 "Bob"
中的 'o',但能
匹配 "foooood"
中的所有 o。'o{1,}'
等价于 'o+'。'o{0,}'
则等价于 'o*'。
{n,m} m
和 n 均为非负整数,其中 n <= m
。最少匹配 n
次且最多匹配 m 次。例
如,"o{1,3}"
将匹配 "fooooood"
中的前三个 o。'o{0,1}'
等价于 'o?'。请注意在逗号
和两个数之间不能有空格。
5、定界符:边界
用来描述字符串或单词的边界,^和$分别指字符串的开始与结束,\b 描述单词的前或后
边界,\B 表示非单词边界。不能对定位符使用限定符。
3.2 字符类[ ]
可以使用字符类指定字符列表以匹配正则表达式中的一个位置。使用方括号([
和 ])定
义字符类。例如,下面的正则表达式定义了匹配 bag、beg、big、bog
或 bug 的字符类:
/b[aeiou]g/
1、字符类中的转义序列:
“
”
通常在正则表达式中具有特殊含义的大多数元字符和元序列在字符类中 不具有 那些特
殊含义。例如,在正则表达式中星号用于表示重复,但是出现在字符类中时则不具有此含
义。下列字符类匹配星号本身以及列出的任何其它字符:
/[abc*123]/
但是,下表中列出的三个字符功能与元字符相同,在字符类中具有特殊含义:
] :定义字符类的结尾。
- :定义字符范围
\ :定义元序列并撤销元字符的特殊含义。
对于要识别为字面字符(无特殊元字符含义)的任何字符,必须在该字符前面加反斜杠
转义字符。例如,下面的正则表达式包含匹配四个符号($、\、]
或 -)中任意一个符号的
字符类。
/[$\\\]\-]/
2、字符类中字符的范围:
使用连字符指定字符的范围,例如 A-Z、a-z
或 0-9。这些字符必须在字符类中构成有效