gpt4 book ai didi

c# - 正则表达式没有给出预期的输出

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:40 25 4
gpt4 key购买 nike

下面给出的是 C# 代码。我尝试了代码中相同的正则表达式,但由于某种原因我没有得到所需的输出。代码中给出的html只是一个例子。可以使用 C# 编译器编译代码。

这是代码。

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();

当我看到列表的内容时,我找到了这两个值。

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.Misc. Comment12

2.Misc. Comment13

必须在 Regex 中修改某些内容才能获得我不擅长的所需输出。请调整正则表达式,以便获得所需的输出。

最佳答案

您可以使用后视和更严格的字符类来排除匹配的 ":

  Regex regex = new Regex(@"(?<=[\n\r].*data-label-text="")\s*([^\n\r""]*)");

或者稍微改进的版本,它也会从属性值中去除前导/尾随空格(如果不需要,请删除 \s*):

  Regex regex = new Regex(@"(?<=\sdata-label-text=""\s*)[^""]*(?=\s*"")");

输出:

enter image description here

关于c# - 正则表达式没有给出预期的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com