【发布时间】:2023-04-10 15:57:01
【问题描述】:
我正在尝试捕获两个字符串之间的匹配项。
例如,我正在查找出现在 Q 和 XYZ 之间的所有文本,使用“最快”匹配(不继续向外扩展)。这个字符串:
马戏团 Q 你好 Q SOMETEXT XYZ 今天是 XYZ 好的 XYZ
应该返回:
Q SOMETEXT XYZ
但相反,它返回:
你好 Q SOMETEXT XYZ
这是我正在使用的表达式: Q.*?XYZ
它向左走得太远了。当我在星号后使用问号时,它在骑行方面工作正常。我怎样才能对左侧做同样的事情,并在我击中第一个左 Q 后停止,使其与右侧的工作方式相同?我已经尝试过 http://msdn.microsoft.com/en-us/library/az24scfc.aspx 中的问号和其他符号,但有些东西我只是想不通。
我是一个正则表达式新手,因此我们将不胜感激!
【问题讨论】:
标签: c# .net regex regex-greedy non-greedy