繁体   English   中英

正则表达式用于冒号后的字段的命名值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM