C# 正则表达式-模式使用(.+;)查找自身的一部分
在C#中,我有以下正则表达式模式(在HTML字符串上):C# 正则表达式-模式使用(.+;)查找自身的一部分,c#,.net,regex,C#,.net,Regex,在C#中,我有以下正则表达式模式(在HTML字符串上): Regex TR=newregex(@“(.+)”); 问题是,当我运行它时,匹配包括所有内容,直到HTML代码中最后一次出现。代码中有许多标记,因此(.+)模式包含它们,并且仅在最后一次出现时停止 我尝试使用(\w+),但是它没有在标记中获得特定字符 那么,如何使此模式在第一个处停止,直到代码中的最后一个才停止?以下正则表达式模式将在第一个标记处停止: <tr(\s+)class(\s*)=(\s*)"[^"]*"(\s+)re
Regex TR=newregex(@“(.+)”);
问题是,当我运行它时,匹配包括所有内容,直到HTML代码中最后一次出现
。代码中有许多
标记,因此(.+)
模式包含它们,并且仅在最后一次出现
时停止
我尝试使用(\w+)
,但是它没有在标记中获得特定字符
那么,如何使此模式在第一个
处停止,直到代码中的最后一个才停止?以下正则表达式模式将在第一个
标记处停止:
<tr(\s+)class(\s*)=(\s*)"[^"]*"(\s+)rel(\s*)=(\s*)"[^"]*"(\s*)>(.(?!<\/tr>))*[\s\S]<\/tr>
(.(?!)*[\s\s]
您可以将代码更改为以下内容以获得所需内容:
Regex TR = new Regex(@"<tr class=""(\w+)"" rel=""(\w+)"">(.(?!<\/tr>))*[\s\S]</tr>");
Regex TR=newregex(@“(?!)*[\s\s]”;
(?!ABC)
被称为负前瞻。它指定一个不能在主表达式之后匹配的组(如果匹配,则丢弃结果)
供将来参考:尝试使用创建和测试正则表达式模式
> So how can I make this pattern stop at the first </tr>
到<代码>[^Reading on the subject:
+?
…..顺便说一句:使用而不是regexTry*?
而不是+
@Eser-它是有效的!非常感谢!你能给我解释一下?
在Regex中是如何工作的吗?我在一个网站上看到过它,但直到第一次出现之前,我都不明白它是如何让Regex运行的在这种特定情况下,@BlueRay101搜索非贪婪匹配。
> So how can I make this pattern stop at the first </tr>
>(.+)</tr>
>([^<]+)</tr>