【发布时间】:2023-03-04 14:48:01
【问题描述】:
我正在尝试使用正则表达式来解析字符串并提取所需的数据。这是我的字符串:
验证 ELEMENT 的控制值 - VerifyFirstRowSearchNotes 为 〜创建统计储备:〜IP:索赔司机; IP 角色:所有者, 司机~曝光
我正在尝试使用以下正则表达式模式捕获数据。我特别对“as”后面的数据感兴趣。但是,我只能捕获下面的控制值,而不能在“as”之后提取任何内容并将其分配给字段组:
string actionpattern = @"Validate control value for ELEMENT - (?<control>.*?)as (?<fields>.*?)";
var regex = new Regex(actionpattern, RegexOptions.IgnoreCase);
var match = regex.Match({above string});
让我知道我做错了什么。我是正则表达式的新手,正在学习中。
【问题讨论】:
-
预期结果是什么?
-
@AhmedAbdelhameed 啊,当然。如果您删除问号
(?<fields>.*?),您将使其变得贪婪并匹配(?<fields>.*)之后的所有内容@ -
@WiktorStribiżew 我的预期结果应该是 match.Groups["control"] = VerifyFirstRowSearchNotes match.Groups["fields"] = ~Creating Stat Reserve: ~IP: Claimant Driver; IP 角色:所有者、司机~曝光
-
所以,你应该使用
(?<fields>.*)
标签: c# regex regex-group