正则表达式:仅在内部开始/停止部分找到匹配项

时间:2011-05-27 14:21:43

标签: c# regex

我只需要在START和STOP之间进行MATCH:

  1. blah START hello MATCH bye STOP blah

  2. blah START hello MATCH STOP blah

  3. blah MATCH blah START hello MATCH STOP blah

  4. 例如:在第3行,只能找到第二个MATCH。

    请注意,START,STOP和MATCH不是文字。它们表示为正则表达式的部分正则表达式。

    当然,简化但非优雅的解决方案是在START和STOP之间提取部分,然后在那里寻找MATCH。

    TIA,

2 个答案:

答案 0 :(得分:1)

@"START.*?(MATCH).*?STOP"

抓住“匹配”是什么。对于START - MATCH - STOP(而不仅仅是“。”)之间可能发生的事情,您可能有其他标准,如果是这样,请使用字符类。

答案 1 :(得分:1)

试试这个:

/\bSTART\b.*?\bMATCH\b.*?\bSTOP\b/

如果你想要抓住它而不是说这些实际的话:

/START.*?(MATCH).*?STOP/