组和量词{m,n}



是否可以在组中使用量词?

例如

。我想匹配如下内容:

  • li> li> aa %
  • zy %
  • g1%
  • 8 b %…

模式是:2个字母或数字(混合或非混合)和以%结尾的字符串…

<?php
echo preg_match('~^([a-z]+[0-9]+){2}%$~', 'a1%'); // 0, I expect 1.
我知道,这个例子不太有意义。一个简单的[list]{m,n}就能解决这个问题。这是尽可能简单的,只是为了得到一个答案。

您当然可以将量词应用于组。例如,我有字符串:

HouseCatMouseDog

还有正则表达式:

(Mouse|Cat|Dog){n}

其中n为任意数。你可以在这里改变n的值。

至于你的例子(是的,[list]{m,n}会更简单),它只会工作,如果有一个字母或更多,后面跟着一个数字,或更多。因此,只有g1将匹配。

你不需要使用2个字符类,只要一个就可以完成你的工作。

echo preg_match('~^([a-z0-9]{2})%$~', 'a1%'); 
<<p> RegExp意义/strong>
^ => It will match at beggining of the string/line
(
    [a-z0-9] => Will match every single character that match a-z(abcdefghijklmnopqrstuvwxyz) class and 0-9(0123456789) class.
    {2} => rule above must be true 2 times
) => Capture block
% => that character must be matched after a-z and 0-9 classes
$ => end of string/line

相关内容

  • 没有找到相关文章

最新更新