正则表达式从字符串中提取前3个单词

use*_*151 2 regex

我试图替换除String中前3个单词之外的所有单词(使用textpad).

防爆值: This is the string for testing.

我想只提取3个单词:This is the从上面的字符串中删除所有其他单词.

我想出正则表达式匹配3个单词(\w+\s+){3}但我需要匹配除前3个单词之外的所有其他单词并删除其他单词.有人可以帮我吗?

Ron*_*eld 5

究竟如何取决于风味,但要消除除前三个词之外的所有内容,您可以使用:

^((?:\S+\s+){2}\S+).*
Run Code Online (Sandbox Code Playgroud)

它捕获前三个单词到捕获组1,以及其余的字符串.对于替换字符串,您使用对捕获组1的引用.在C#中,它可能如下所示:

resultString = Regex.Replace(subjectString, @"^((?:\S+\s+){2}\S+).*", "${1}", RegexOptions.Multiline);
Run Code Online (Sandbox Code Playgroud)