【问题标题】:Match the nth word in a line匹配一行中的第 n 个单词
【发布时间】:2019-01-24 16:19:31
【问题描述】:

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

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

但我需要第 5 个单词“jumps”作为匹配结果,而不是完整匹配“The quick brown fox jumps”

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

The quick brown fox jumps over the lazy dog

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

【问题讨论】:

  • 您使用什么语言/工具?是否支持可变长度后视?
  • 该应用程序是ecoDMS 18.09,我知道的编程语言是qt 5.7,我不知道它是否支持lookbehind,我可以试试,你能给我一个示例正则表达式吗?
  • 试试^(?<=(?:\S+ ){4})\S+^(?:\S+ ){4}\S+
  • 我试试这个 "(?
  • 它适用于regex101.com/r/pR22LK/2 与 PCRE。您的应用似乎不支持它,但我不知道它是如何工作的。我认为您必须提取数组中的所有单词,然后选择您想要的单词。

标签: regex find word


【解决方案1】:

由于您需要整个匹配项仅是第 n 个单词,因此您可以尝试使用“positive lookbehind”,它允许您仅匹配某些内容,前提是它前面有其他内容。

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

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

(\w+\s){4}

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

(?<=(\w+\s){4})(\w+)

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

【讨论】:

  • ?前面的token是不可量化的,你的pattern有一个或多个错误,请看上面的解释部分。
  • 在 regex101、RegexBuddy 和简单的 Python 脚本中,正则表达式函数对我来说很好。我假设你改变了一些破坏它的东西?
【解决方案2】:

要查找句子的第三个单词,请使用:

^(?:\w+ ){2}\K\w+

说明:

^               # beginning of line
    (?:         # start non capture group
        \w+     # 1 or more word character
                # a space
    ){2}        # group must appear twice (change {2} in {3} to get the 4th word and so on)
    \K          # forget all we have seen until this position
    \w+         # 1 or more word character

Demo

【讨论】:

    【解决方案3】:

    它适用于https://regex101.com/r/pR22LK/2 与 PCRE。您的应用似乎不支持它,但我不知道它是如何工作的。我认为您必须提取数组中的所有单词,然后选择您想要的单词。 – Toto 23 小时前

    您好 Toto,您的解决方案也可以在 App 中使用,例如 PCRE,谢谢!!! – gsxr1300 刚刚编辑

    【讨论】:

      【解决方案4】:

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

      ^(\w+\s){4}
      

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

      (?<=^(\w+\s){4})(\w+)
      

      注意^的区别

      如果你想知道这个“?https://stackoverflow.com/a/2973495/11280142

      【讨论】:

      • 你能edit你的答案并解释其中的区别吗? ?&lt;= 在正则表达式中做了什么,为什么这里需要它?
      猜你喜欢
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      相关资源
      最近更新 更多