代码之家  ›  专栏  ›  技术社区  ›  Bendram

使用regex捕获具有特殊字符的字符串

  •  -1
  • Bendram  · 技术社区  · 6 年前

    我正在尝试使用regex解析字符串并提取所需的数据。这是我的字符串:

    验证元素的控制值-VerifyFirstRowSearchNotes为 ~创建统计储备:~ IP:索赔人驱动程序;IP角色:所有者, 驾驶员~曝光

    我试图使用下面的regex模式捕获数据。我对“as”后面的数据特别感兴趣。然而,我只能捕获下面的控制值,不能提取“as”之后的任何内容并将其分配给fields group:

    string actionpattern = @"Validate control value for ELEMENT - (?<control>.*?)as (?<fields>.*?)";
    var regex = new Regex(actionpattern, RegexOptions.IgnoreCase);
    var match = regex.Match({above string});
    

    让我知道我做错了什么。我对regex还不熟悉,正在学习中。

    1 回复  |  直到 6 年前
        1
  •  1
  •   41686d6564    6 年前

    如果删除此部分中的问号 (?<fields>.*?) 你会让它变得贪婪,然后匹配所有的东西 (?<fields>.*)

    您的正则表达式如下所示:

    Validate control value for ELEMENT - (?<control>.*?)as (?<fields>.*)