如何从字符串(C#)获取正则表达式中的每个tablerow?

如何从字符串(C#)获取正则表达式中的每个tablerow?,c#,regex,string,multiple-matches,C#,Regex,String,Multiple Matches,基本上,我有这样一个字符串: <table><tr class="even"><td></td><td></td></tr><tr class="odd"><td></td><td></td></tr></table> 提供0个匹配项 有什么想法吗 非常感谢 \ \<tr[\s\S]*?\/tr\> .?*:所

基本上,我有这样一个字符串:

<table><tr class="even"><td></td><td></td></tr><tr class="odd"><td></td><td></td></tr></table> 
提供0个匹配项

有什么想法吗

非常感谢

\
\<tr[\s\S]*?\/tr\>
.?*:所有字符,在第一次匹配时停止

\s\s:所有字符,甚至新行

我使用RAD软件正则表达式设计器来创建和测试正则表达式。这是一个伟大的工具

试试这个:

var s = @"<table><tr class=""even""><td></td><td></td></tr><tr class=""odd""><td></td><td></td></tr></table>";
Regex.Matches(s, @"(<tr .*?</tr>)", RegexOptions.Singleline)
var s=@”;
正则表达式匹配,@“(
var str=”“;
字符串[]trs=Regex.Matches(str,@“]*>(?*),RegexOptions.Multiline)
.Cast()
.Select(t=>t.Groups[“content”].Value)
.ToArray();
“trs”数组是您的结果,包含两次


编辑:此正则表达式不能适应缺少
(在任何浏览器中都可以很好地显示)。可以使用解决此问题。请考虑以下正则表达式

(?<=\<tr.*?\>).*?(?=\</tr\>)

(?不要忘记,如果出现换行符,模式将失败。是的,必须在单行模式下使用正则表达式来捕捉换行符。@Casimir:我添加了\s\s,它涵盖了所有字符,甚至换行符。我已经测试过,现在它可以与多行一起工作。谢谢你指出它!@GerhardPowell,谢谢,这非常有效!我将看看在工具,似乎很有趣!
var s = @"<table><tr class=""even""><td></td><td></td></tr><tr class=""odd""><td></td><td></td></tr></table>";
Regex.Matches(s, @"(<tr .*?</tr>)", RegexOptions.Singleline)
 var str = "<table><tr class=\"even\"><td></td><td></td></tr><tr class=\"odd\"><td></td><td></td></tr></table>";
 string[] trs = Regex.Matches(str, @"<tr[^>]*>(?<content>.*)</tr>", RegexOptions.Multiline)
             .Cast<Match>()
             .Select(t => t.Groups["content"].Value)
             .ToArray();
(?<=\<tr.*?\>).*?(?=\</tr\>)