首页 > 解决方案 > 正则表达式从空格分隔列表中获取第三个元素

问题描述

我需要帮助来创建正则表达式以从列表中获取第三个元素,例如

phrase1 phrase2 phrase3
phrase4 phrase5 phrase6

所以结果应该是

phrase3
phrase6

什么是正则表达式?

标签: regex

解决方案


如果您想从字符串中删除其他项目并保留第 3 个项目,请使用Tim Biegeleisen 答案

如果您想匹配字符串中的第 3 项,那么此答案将对您有所帮助


您可以使用此正则表达式:

^(?:(?:[^\s]+ ){2})([^\s]+)

带有gm标志

解释:

用词:

从每行的开头开始“跳过” 2 个项目(项目是其中没有空格的任何字符串)并匹配第 3 个项目。

空白是空格、制表符或换行符

在正则表达式中:

让我们把它分成几部分:

  1. ^: 行首(因为我们使用了m标志
  2. [^\s]+: 匹配蚂蚁字符不是空白字符(空格、制表符、换行符)。
  3. (?:...): 匹配但不包含在匹配结果中
  4. {2}需要 2 项((?:[^\s]+ )正则表达式)

笔记:

即使有更多项目,这也将匹配第三个项目:

例如,它将匹配phrase3phrase7From:

phrase1 phrase2 phrase3 phrase4
phrase5 phrase6 phrase7
phrase8

推荐阅读