我正在尝试使用正确的模式实例化正则表达式,以便只获取正确的字符串值。我的文本文件有:
Comment ID : 1234.5
我希望得到正确的价值如下:
1234.5
正确的正则表达式模式是什么?
这是我到目前为止所拥有的
new Regex(@"^Comment ID\s*:\s*(?<comment_id>\w+)", RegexOptions.Multiline | RegexOptions.IgnoreCase);
但是这也带来了不需要的字符串“评论ID”
是否可以不使用群组标记<comment_id>
?
答案 0 :(得分:1)
您不必使用组名 - 但是您必须通过索引引用它们。 如果字符串的左侧部分不能包含“:”,那么正则表达式可以是:
^[^:]+:\s*(.*?)\s*$
此外,您可以使用intance String.Split()方法:
"abc : def".Split(new[] { ':' }, 2)
答案 1 :(得分:0)
如果您不关心:
可以使用的剩余部分:
"^.*:\s*(?<comment_id>\w+)"
你也不需要使用RegexOptions
这个,因为没有字符串可以忽略
答案 2 :(得分:0)
(?&lt; = Comment ID:\ s *)[^ \ s] +
答案 3 :(得分:0)
您提供的正则表达式"^Comment ID\s*:\s*(?<comment_id>\w+)"
与点
尝试使用此:
(?!^Comment ID\s*:\s*)(?<comment_id>\d+\.*\d*)
您还可以将注释ID更改为任何单词或\ w +