[英]Regex for named value of field after a colon
使用c#,我试图使用正则表达式来获取冒号后出现的一段文本的值。 我知道字段名称,但是后面的冒号处于可变位置。 该值将在下一个空格处结束。
从而:
KnownFieldName:值
然后,我想将值放在一个组中。
我发现了许多类似的问题,但没有一个实际上指向我解决这个问题的方向。
这是一段较大的代码的一部分,但是基本上适合这里:
foreach (var v in fieldsToParse)
{
var match = Regex.Match(line, v.pattern, RegexOptions.IgnorePatternWhitespace);
if (match.Success)
v.value = match.Groups[v.name].Value;
}
您要查找的正则表达式应类似于(?<knownfieldname>[a-zA-Z]+)(\\s+):(\\s+)(?<value>[a-zA-Z]+)
或knownfieldname(\\s+):(\\s+)(?<value>[a-zA-Z]+)
当然,这假定KnownFieldName和Value都只是字母字符。 如果可以输入数字,您可能还想在范围内添加0-9
,或者如果除空格以外的其他内容确实有效,则可以使用\\S
通配符。
编辑以合并可变数量的空格。 另外,根据下面的评论,您可以考虑将Derek Slager出色的Regex测试仪和此简单的Regex备忘单添加为书签。 在这种情况下有很大帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.