【发布时间】:2013-05-23 14:07:12
【问题描述】:
是否可以在组中使用量词?
例如。我想匹配类似的东西:
- 11%
- 09%
- aa%
- zy%
- g1%
- 8b% ...
模式是:2个字母或数字(混合或不混合)和一个以%结尾的字符串...
<?php
echo preg_match('~^([a-z]+[0-9]+){2}%$~', 'a1%'); // 0, I expect 1.
我知道,这个例子没有太多意义。一个简单的 [list]{m,n} 可以解决这个问题。尽可能简单地得到答案。
【问题讨论】:
-
我认为正则表达式与您希望它匹配的内容不匹配。该正则表达式匹配一个或多个字母,后跟一个或多个数字,两次,然后是 % 和字符串的结尾。所以
a1a1%会匹配。我想你要写的是/^([a-z]|[0-9]){2}%$/。这将与您提供的字符串匹配,并作为您希望将量词与组一起使用的示例(这是完全合法的,根据 @jerry 的回复)。
标签: php regex preg-match regex-group quantifiers