我被一些明显的东西困住了,我无法正常工作:
有这样的文字:".... blah-blah-blah... Grupper blah-blah-blah Butik ...
"。 Grupper
是一个可选的标记 - 可以在文本中省略,Butik - 是强制性的。因此,如果有的话,它应该匹配Grupper
并且始终Butik
。
像(Grupper)?[sS]*?(Butik)
这样的表达永远不会抓住Grupper
,但没有?就可以正常工作(当然,当原始文本中没有"Grupper"时,完全失败(。
我如何让它工作?
如果 Grupper 出现 0 或 1 次,则(Grupper)?
匹配它。所以它匹配了一些东西,即使Grupper不是其中的一部分。
如果您的字符串以 Grupper 开头,反向引用(Grupper)
将包含它(默认情况下正则表达式是贪婪的(,如果字符串不以 Grupper 开头,则反向引用将为空。
在你的位置上,我会在 2 个不同的正则表达式中捕捉 Butik 和 Grupper。