我刚刚问了一个与此类似的问题,并且有一个出色而准确的答案,但事实证明我现在遇到了一个全新的问题。原来我有一行相关的输入。我不确定如何以抽象的方式问这个问题,所以我将直接进入我的输入:
(已编辑以提供更好的示例)
bear999bear888bear777bear666fox---bear222bear333bear444bear555fox
(标记之间的项目不一定是数字)
这是表达式(EDITED 以匹配更新的输入示例):
bear.*bear(?<matchString>(.(?!bear.*bear))*?)bear.*fox
它返回444。有没有办法可以调整它以返回444 和 777?它似乎跳过了第一场比赛,只支持后者。我有!排除,使其仅匹配左侧的最里面。
我一直在这里测试: http ://regexlib.com/RETester.aspx
当我将它分成两行并打开多行时,这非常有用。为什么当输入在单行时它会停止工作?
任何意见,将不胜感激!