JS正则表达式中,量词表示要匹配的字符或表达式的数量。
字符 | 含义 |
---|---|
x* |
将前面的项“x”匹配0次或多次。 |
x+ |
将前面的项“x”匹配1次或多次,等价于x{1,}。 |
x? |
将前面的项“x”匹配0或1次。如果立即在任何量词*、+、?或{}之后使用, 则使量词是非贪婪的(匹配最小次数),而不是默认的贪婪的(匹配最大次数)。 |
x{n} |
其中“n”是一个正整数,与前一项“x”的n次匹配。 |
x{n,} |
其中,“n”是一个正整数,与前一项“x”至少匹配“n”次。 |
x{n,m} |
其中,“n”是0或一个正整数,“m”是一个正整数,而m > n至少与前一项“x”匹配,最多与“m”匹配。 |
x*? x+? x?? x{n}? x{n,}? x{n,m}?
|
默认情况下,像 * 和 + 这样的量词是“贪婪的”,这意味着它们试图匹配尽可能多的字符串。 ?量词后面的字符使量词“非贪婪”:意思是它一旦找到匹配就会停止。 |
Js正则表达式中,量词是很常用的功能。非贪婪匹配接触较少,需要留意更多的使用场景。