C# 正则表达式没有给出预期的输出
下面给出的是C代码。我尝试过代码中的正则表达式,但由于某些原因,我没有得到理想的输出。代码中给出的html只是一个示例。代码可以使用C#编译器编译 这是代码C# 正则表达式没有给出预期的输出,c#,regex,C#,Regex,下面给出的是C代码。我尝试过代码中的正则表达式,但由于某些原因,我没有得到理想的输出。代码中给出的html只是一个示例。代码可以使用C#编译器编译 这是代码 var x = @" <html> <table> <tr> <td class=""l w60"">Adjustments:<input id=""textbox1"" type=""textbox"" n
var x = @"
<html>
<table>
<tr>
<td class=""l w60"">Adjustments:<input id=""textbox1"" type=""textbox"" name=""textbox1"" data-label-text=""Misc. Comment12""/> </td>
<td class=""l w60"">Adjustments:<input id=""textbox1"" type=""textbox"" name=""textbox1"" data-label-text=""Misc. Comment13""/> </td>
<td class=""l w60"">Adjustments:<input id=""textbox1"" type=""textbox"" name=""textbox1"" No match=""Misc. Comment13""/> </td>
</tr>
</table>
</html>";
Regex regex = new Regex(@"[\n\r].*data-label-text=""\s*([^\n\r]*)");
MatchCollection matchList = regex.Matches(x);
var list = matchList.Cast<Match>().Select(match => match.Value).ToList();
var x=@”
调整:
调整:
调整:
";
Regex Regex=new Regex(@“[\n\r].*数据标签text=”“\s*([^\n\r]*)”);
MatchCollection matchList=regex.Matches(x);
var list=matchList.Cast().Select(match=>match.Value.ToList();
当我看到列表的内容时,我发现这两个值
1. <td class="l w60">Adjustments:<input id="textbox1" type="textbox" name="textbox1" data-label-text="Misc. Comment12"/> </td>
2. <td class="l w60">Adjustments:<input id="textbox1" type="textbox" name="textbox1" data-label-text="Misc. Comment13"/> </td>
1。调整:
2.调整:
但这不是期望的输出。下面给出了所需的输出
1.Misc。评论12
2.Misc。评论13
必须在正则表达式中修改某些内容才能获得我不擅长的所需输出。请调整正则表达式,以便获得所需的输出。您可以使用查找和更严格的字符类来排除匹配的
“
s:
输出:
作为示例
(?正如@UlugbekUmirov所说,您应该使用一个HTML解析库,如。
Regex regex = new Regex(@"(?<=[\n\r].*data-label-text="")\s*([^\n\r""]*)");
Regex regex = new Regex(@"(?<=\sdata-label-text=""\s*)[^""]*(?=\s*"")");