我正在尝试理解以下正则表达式量词(这里的a只是一个示例标记):
a{n}?
问号如何影响上面表达式的匹配?它与下面的表达式有何不同?
a{n}
例如,我会预期模式aa{1}?a
可以匹配aaa
和aa
。尽管它可以匹配aaa
,但aa
是不能匹配的。而模式a(a{1})?a
可以匹配两个字符串,所以这里括号确实起到了作用。
注意:msdn文章《正则表达式中的量词》对于这两者都有以下说明:
{n}量词将前一个元素精确地匹配n次,其中n是任意整数。
对于{n}?
,它补充了以下不是很有帮助的内容:
它是贪婪量词 {n}+ 的惰性对应物。
a(a{1})?a
表达。但你说得对,贪婪模式下的精确计数匹配是什么? - Marius Schulz