正则表达式选择一个单词的一部分

Sam*_*ath 6 c# regex

我有这样的文字:

my text has $1 per Lap to someone. 
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何从中挑选per零件.我知道如何选择$金额.就像这样:

new Regex(@"\$\d+(?:\.\d+)?").Match(s.Comment1).Groups[0].ToString()
Run Code Online (Sandbox Code Playgroud)

任何帮助将受到高度赞赏.

Kas*_*mvd 1

正如您所说,这per是一个字符串类型,以下简单的正则表达式可以为您完成这项工作:

\$\d+\s([a-zA-Z]+)
Run Code Online (Sandbox Code Playgroud)

但如果per包含数字,您可以使用\w匹配单词字符:

\$\d+\s(\w+)
Run Code Online (Sandbox Code Playgroud)

演示

请注意,在本例中per位于第一个捕获组中,您需要提取第一个组。

如果您不想使用,也可以使用积极的向后看grouping

(?<=\$\d+\s)[a-zA-Z]+
Run Code Online (Sandbox Code Playgroud)

如果per是特殊单词,您可以使用以下正则表达式进行检查:

(?<=\$\d+\s)per
Run Code Online (Sandbox Code Playgroud)

就像是 :

var per_str = new Regex(@'(?<=\$\d+\s)per').Match(str).Groups[0].Value;
if (per_str != ''){
#dostuff
}
Run Code Online (Sandbox Code Playgroud)