标签: regex perl
情况很简单。单词“gat”可能在字符串中出现0或1次。如何编写正则表达式来匹配它?
现在我只能使用以下内容来做我想要的事情。它适用于我的情况,虽然它也匹配“ga”,“at”等。
$str =~ m/(g?a?t?)/
我想有一个更简单的表达方式来使用“?”在“gat”这个词上,但是我尝试了“{}”并且它不起作用。
谢谢!
答案 0 :(得分:4)
使用Non-capturing Group和? quantifier
?
$str =~ m/...(?:gat)?.../
也可以写成:
$str =~ m/...(?:gat){0,1}.../
答案 1 :(得分:1)
.*?(\b(?:gat)\b)?
试试这个。这会给所有的gat。
http://regex101.com/r/pP3pN1/33