匹配一行中的第 n 个单词

gsx*_*300 5 regex find cpu-word

在我使用的应用程序中,我无法选择比赛组 1。

我可以使用的结果是正则表达式的完整匹配。

但我需要第 5 个单词“jumps”作为匹配结果,而不是完整的匹配项“The Quick Brown Fox Jumps”

^(?:[^ ]*\ ){4}([^ ]*)

The quick brown fox jumps over the lazy dog
Run Code Online (Sandbox Code Playgroud)

这是一个链接https://regex101.com/r/nB9yD9/6

Gri*_*mar 6

由于您需要整个匹配仅是第 n 个单词,因此您可以尝试使用“正向查找”,它允许您仅匹配某些内容(如果它前面有其他内容)。

要仅匹配第五个单词,您需要匹配前面有四个单词的第一个单词。

要匹配四个单词(即单词字符后跟空格字符):

(\w+\s){4}
Run Code Online (Sandbox Code Playgroud)

匹配单个单词,但前提是它前面有四个其他单词:

(?<=(\w+\s){4})(\w+)
Run Code Online (Sandbox Code Playgroud)

在这里测试结果https://regex101.com/r/QIPEkm/1


gsx*_*300 1

它与 PCRE 一起使用https://regex101.com/r/pR22LK/2。您的应用程序似乎不支持它,但我不知道它是如何工作的。我认为你必须提取数组中的所有单词,然后选择你想要的单词。\xe2\x80\x93 托托 23 小时前

\n\n

你好托托,你的解决方案也适用于应用程序,如PCRE,谢谢!\xe2\x80\x93 gsxr1300 刚刚编辑

\n