如何在不创建群组的情况下表达“匹配一个词或另一个词”?

时间:2015-04-12 17:00:51

标签: regex go regex-group

我试图将这种字符串与正则表达式匹配:

{{location|
{{location dec|
{{location other|

所以我提出了这个正则表达式:

{{location( dec| other|)

工作得很好,但它在( dec|)创建了一个我不需要的小组。有没有办法做同样的事情,但没有创建一个小组?

2 个答案:

答案 0 :(得分:4)

您需要一个群组,但可以通过在左括号后添加?:将其设为非捕获群组:

(?: dec| other|)

非捕获意味着该组仅存在于表达式中;没有可能的反向引用,组编号不受影响。

答案 1 :(得分:2)

您可以使用?:来阻止群组创建,因此请尝试:

{{location(?: dec| other|)