c# - where 子句的正则表达式?

标签 c# linq where-clause

我正在尝试匹配 XML 文件上的特定术语并保存结果。以下是字符串上的 XML 文本:

<node1>
  <node2>
    <text>Goodbye</text>
  </node2>
  <node2>
    <text>Welcome James</text>
  </node2>
  <node2>
    <text>Welcome John</text>
  </node2>
  <node2>
    <text>See you later!</text>
  </node2>
</node1>

我想使用 linq 来选择任何欢迎的文本。但是,welcome 之后的名称(例如,welcome James)可以更改。因此,我试图了解是否有一种简单的方法可以通过正则表达式选择其中包含任何欢迎名称的节点?

这是 C# 代码:

private static void Test(string stream)
{
  XDocument doc = XDocument.Parse(stream); //stream contains the xml written above
  var list = from hello in doc.Descendants("node2")
             where attacker.Element("text").Value == "Welcome .*"
             select attacker.Element("text").Value;

  foreach (var x in attackList)
    Console.WriteLine(x);
}

最佳答案

对于像您这样简单的场景,无需使用正则表达式。您可以使用 String.StartsWith(String)判断字符串是否以指定字符串开头的方法如下:

private static void Test(string stream)
{
    XDocument doc = XDocument.Parse(stream);
    var list = from hello in doc.Descendants("node2")
               where attacker.Element("text").Value.StartsWith("Welcome")
               select attacker.Element("text").Value;

    foreach (var x in attackList)
    {
        Console.WriteLine(x);
    }
}

关于c# - where 子句的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6233372/

相关文章:

c# - 想要来自 for 循环的 @Html.HiddenFor 不同的值

c# - 具有多个条件和组合的 LINQ 方法

PHP 查询使用 WHERE、AND & OR 语句问题

'min' 子句中的 MySql 'WHERE'

c# - ASP.NET Web API 2 中的路由别名

javascript - 如何在ASP.NET中的Linkbutton中管理右键单击 "Open in new tab"和 "Open in new windows"?

c# - 如何在 C# 中获取两个字符串数组之间的差异?

php - PHP 文件上的 LIKE 查询问题

c# - 是否有一种简单的方法来导航 List<t> 对象?

c# - LINQ 中的 .Take 方法是否有通配符?