引起问题的短语:
## synonym:g
正则表达式:
^## (intent|synonym|lookup|regex):(\w+\+?\w+?)$
为什么此表达式与上面的短语不匹配?
但是将上面的正则表达式修改为:
^## (intent|synonym|lookup|regex):(\w+)$
匹配短语。
答案 0 :(得分:3)
问题是您当前正则表达式的最后一部分:
(\w+\+?\w+?)
与您可能认为的相反,这与字母g
不匹配。相反,它说要匹配两个或两个以上的字母,并且在它们之间有一个可选的+
。
这是您可能要在此处进行的操作:
^## (intent|synonym|lookup|regex):(\w+(?:\+\w+)*)$
此正则表达式的结尾部分将匹配:
g
g+g2
等,但是它不允许使用后跟+
且后面没有一个或多个单词字符的情况。