1

我正在尝试使用正确的模式实例化一个正则表达式,以便只获取字符串的正确值。我的文本文件有:

Comment ID : 1234.5

我想得到正确的值如下:

1234.5

什么是正确的正则表达式模式?

这是我到目前为止所拥有的

new Regex(@"^Comment ID\s*:\s*(?<comment_id>\w+)", RegexOptions.Multiline | RegexOptions.IgnoreCase); 

但这也带来了不需要的字符串“评论 ID”

可以不使用组标记<comment_id>吗?

4

4 回答 4

1

您不必使用组名 - 但是您必须通过索引来引用它们。如果字符串的左边部分不能包含“:”,那么正则表达式可以是:

^[^:]+:\s*(.*?)\s*$

此外,您可以使用实例 String.Split() 方法:

"abc : def".Split(new[] { ':' }, 2)
于 2010-11-23T15:31:54.403 回答
0

如果您不关心剩下的内容,:您可以使用:

"^.*:\s*(?<comment_id>\w+)"

你也不需要使用RegexOptions这个,因为没有字符串可以忽略大小写

于 2010-11-23T14:59:31.890 回答
0

(?<=评论 ID :\s*)[^\s]+

于 2010-11-23T15:42:28.067 回答
0

您提供的正则表达式"^Comment ID\s*:\s*(?<comment_id>\w+)"与点后的数字不匹配

尝试使用这个: (?!^Comment ID\s*:\s*)(?<comment_id>\d+\.*\d*)

您也可以将评论 ID 更改为任何单词或 \w+

于 2010-11-23T15:44:14.447 回答