Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式-模式使用(.+;)查找自身的一部分_C#_.net_Regex - Fatal编程技术网

C# 正则表达式-模式使用(.+;)查找自身的一部分

C# 正则表达式-模式使用(.+;)查找自身的一部分,c#,.net,regex,C#,.net,Regex,在C#中,我有以下正则表达式模式(在HTML字符串上): Regex TR=newregex(@“(.+)”); 问题是,当我运行它时,匹配包括所有内容,直到HTML代码中最后一次出现。代码中有许多标记,因此(.+)模式包含它们,并且仅在最后一次出现时停止 我尝试使用(\w+),但是它没有在标记中获得特定字符 那么,如何使此模式在第一个处停止,直到代码中的最后一个才停止?以下正则表达式模式将在第一个标记处停止: <tr(\s+)class(\s*)=(\s*)"[^"]*"(\s+)re

在C#中,我有以下正则表达式模式(在HTML字符串上):

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>