正则表达式捕获一个单词的一部分

时间:2015-05-04 18:20:23

标签: c# regex

my text has $1 per Lap to someone. 

我有上面的文字。我需要选择$ {1}之后的per Lap部分。你能告诉我怎么做吗?

我可以使用new Regex(@"\$\d+(?:\.\d+)?").Match(s.Comment1).Groups[0].ToString()选择$ part。但我需要per Lap部分?提前致谢。

2 个答案:

答案 0 :(得分:4)

您可以使用lookbehind,如下所示:

 

表达式前面的(?<=\$\d+\s*)(\w+\s*\w+) 部分表示&#34;前面带有...&#34;。必须匹配表达式的这一部分,但在最终结果中将忽略它。

Simplified demo(与C#的正则表达式引擎不同,演示中使用的引擎不支持可变长度的lookbehinds,所以我稍微改变了表达式来说明这一点。)

答案 1 :(得分:1)

Regex101

^.*\$\d+\s+(\w+\s+\w+)

Regular expression visualization

Debuggex Demo