在C#中使用什么正则表达式从单词BEHIND(向后匹配…)开始匹配直到匹配?

问题描述 投票:1回答:1

让我们说一个HTML代码:

<a href="http://google.com">this is a search engine</a>"

如何查找“引擎”并匹配所有内容,直到达到“此”?

我知道我可以做到:this。*?engine-但这是从左到右匹配,即“提前”匹配,如果可以的话,我想向后阅读?

c# regex nsregularexpression
1个回答
0
投票

您可以反转所有字符串并执行常规搜索:

string text = @"<a href=""http://google.com""> this is a search engine </a>";
string engine = "engine";
string strThis = "this";

new string(
  Regex.Match(
    new string(text.Reverse().ToArray()),
    new string(engine.Reverse().ToArray()) + ".+" + new string(strThis.Reverse().ToArray()))
 .Value
 .Reverse()
 .ToArray())

[另外,为了使代码更清晰,您可以在string上定义扩展方法,该方法将字符串反转并返回string而不是IEnumerable<char>。请参阅this以供参考。

© www.soinside.com 2019 - 2024. All rights reserved.