如何使用正则表达式匹配包含特定单词的行的第 N 个单词

2023-11-27

我正在尝试获取正确的正则表达式来匹配包含特定单词的行的第 N 个单词。

例如,如果我有这样的输入:

this is the first line - blue
this is the second line - green
this is the third line - red

我想匹配包含单词“second”的行的第七个单词并返回green.

我在用着Rubular来测试正则表达式。

我已经尝试过这个正则表达式但没有成功 - 它匹配下一行:

(.*second.*)(?<data>.*?\s){7}(.*)

另一个输入示例:

this is the Foo line - blue
this is the Bar line - green
this is the Test line - red

我想匹配包含单词“red”的行的第四个单词并返回Test.

我想要匹配的单词可以是before or after我用来选择该行的词。


您可以使用它来匹配包含以下内容的行second并抓住第七个词:

^(?=.*\bsecond\b)(?:\S+ ){6}(\S+)

确保全局和多行标志处于活动状态。

^匹配行的开头。

(?=.*\bsecond\b)是一个积极的前瞻,以确保有这个词second在该特定行中。

(?:\S+ ){6}匹配 6 个单词。

(\S+)将获得第 7 个。

正则表达式101演示


您可以将相同的原则应用于其他要求。

包含一行red并得到第四个词...

^(?=.*\bred\b)(?:\S+ ){3}(\S+)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用正则表达式匹配包含特定单词的行的第 N 个单词 的相关文章

  • Python正则表达式查找所有单个字母字符

    我想找到字符串中单个字母字符每次出现的所有索引 我不想捕获单个字符 html 代码 这是我的代码 import re s fish oil B stack peanut c b words re finditer S s has alpha
  • Boost 正则表达式:获取命名组

    如何使用 Boost 正则表达式获取与模式匹配对应的组名称 以下将输出与给定模式匹配的表达式 但是如何获取对应的命名组呢 boost regex pattern
  • Scrapy规则如何与爬行蜘蛛一起工作

    我很难理解 scrapy 爬行蜘蛛规则 我有一个例子 它并不像我希望的那样工作 所以它可能是两件事 我不明白规则是如何运作的 我形成了不正确的正则表达式 导致我无法获得所需的结果 好吧 这就是我想做的 我想编写爬行蜘蛛 它将获取所有可用的统
  • nginx 代理重定向,带有来自 uri 的端口

    我正在尝试使用 nginx 进行重定向 这个想法是将某些端口的 uri id 1234 重定向到 localhost 1234 固定端口的重定向 location id 1234 rewrite id 1234 1 break proxy
  • python 文件中的单词分析和评分

    我正在对一个句子进行逐字分析 例如 嘿那里 这是一部很棒的电影 我有很多像上面这样的句子 我有一个巨大的数据集文件 如下所示 我必须快速查找该单词是否存在 如果是 则进行分析并存储在字典中 例如从单词的文件中获取分数 句子最后一个单词的分数
  • 正则表达式仅匹配字母数字和连字符,删除 javascript 中的其他所有内容

    我想删除除字母数字和连字符之外的所有内容 到目前为止 我已经得到了这个 但它不起作用 String String replace a zA Z0 9 ig 有什么帮助吗 如果要删除除字母数字 连字符和下划线之外的所有内容 请否定字符类 如下
  • 如何使用 PHP preg_replace 链接 Twitter 用户名?

    我想搜索我的 Twitter 状态对象的文本属性并将 username 替换为 a href username a 到目前为止我尝试过的看起来像这样 pattern 1 a zA Z0 9 replace a href 1 2 a new
  • 包含某些特殊字符(排除所有其他字符)的密码的正则表达式

    我必须为指定为的密码提供数据注释正则表达式 min 8 chars min 1 upper min 1 lower min 1 numeric min 1 special char which can ONLY be one of the
  • 如何使用正则表达式获取两个特定字符“:”和“@”之间的字符串部分?

    如何获取 SIP URI 的一部分 例如我有 URIsip email protected cdn cgi l email protection 我需要得到只是username我用 sip 表达式 但出现的结果是username 我如何从匹
  • 标记(lex?parse?)正则表达式

    使用 Ruby 我想获取一个 Regexp 对象 或表示有效正则表达式的字符串 您的选择 并将其标记化 以便我可以操作某些部分 具体来说 我想采用这样的正则表达式 字符串 regex var w parts foo bar 并创建一个替换字
  • 正则表达式不等于字符串

    我用正则表达式用头撞墙 我正在尝试定义一个表达式 该表达式完全排除此文本 System 不区分大小写 但可以包含 系统 这个词提供的不仅仅是这个 例子 系统 无效 系统 无效 系统 无效 系统 无效 asd 系统 有效 asd 系统 asd
  • 正则表达式接受 4 条规则中的 3 条

    我似乎无法让正则表达式正确满足以下要求 长度在 8 到 20 之间的字符串 必须包含至少 1 个大写字母字符 至少 1 个小写字母字符 以及至少 1 个数字或至少 1 个特殊字符字符 或两者 假设特殊字符仅限于包括 我最初是这样写的 A Z
  • Javascript 正则表达式来匹配正则表达式

    我正在研究一个特殊的正则表达式来匹配 javascript 正则表达式 现在我有这个正则表达式工作 i g m 例如 foo match i g m gt foo foo undefined foo i match i g m gt foo
  • 我可以缩短这个正则表达式吗?

    我需要检查字符串是否符合特定的 ID 格式 ID的格式如下 aBcDe fghIj KLmno pQRsT uVWxy 由五个大写或小写字母组成的五个块的序列 由一个破折号分隔 我有以下有效的正则表达式 string idFormat a
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 如何使用 XPath 正则表达式匹配 URL

    需要 XPath 方面的帮助 我有这样一个XML
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • 正则表达式:删除 xml 的空元素标签

    我想将所有自封闭元素替换为长语法 因为我的网络浏览器在它们上绊倒 Example becomes 我正在使用 python 风格的正则表达式 这些解决方案都不会容纳像 foo gt 这样的属性 尝试 s lt w gt s gt lt 1
  • 为什么我只得到第一个捕获组?

    https stackoverflow com a 2304626 6607497 https stackoverflow com a 2304626 6607497 and https stackoverflow com a 370042
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D

随机推荐