You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Regex从空格分隔的列表中提取第三个元素

正则表达式实现方案

核心正则写法

方案1:通用捕获组写法(兼容所有正则引擎)

正则表达式为:^(\S+\s+){2}(\S+)
直接取第2个捕获组的内容,就是每行的第三个元素。

规则说明:

  • ^:匹配每一行的起始位置,需要开启多行匹配模式(正则的m修饰符)
  • (\S+\s+){2}:\S+匹配单个不带空格的元素内容,\s+匹配元素之间的1个或多个空格/空白符,{2}表示重复匹配2次,也就是跳过前2个元素和它们后面的分隔空白
  • (\S+):匹配第三个不带空格的元素,存入第2个捕获组

方案2:环视匹配写法(支持正向环视的引擎可用,比如PCRE、Python re、Java等)

正则表达式为:(?<=^(\S+\s+){2})\S+
该写法可以直接匹配到第三个元素,不需要额外提取捕获组,匹配结果就是目标内容。

使用示例(Python环境)

import re

input_text = """phrase1 phrase2 phrase3
phrase4 phrase5 phrase6"""

# 用环视写法直接提取结果
result = re.findall(r'(?<=^(\S+\s+){2})\S+', input_text, flags=re.MULTILINE)
print(result)
# 输出:['phrase3', 'phrase6']

注意事项

  • 必须开启多行匹配模式,否则^只会匹配整个文本的开头,仅能返回第一行的第三个元素
  • 以上写法默认元素本身不包含空格,如果元素允许带空格,需要明确元素的分隔规则后再调整正则

内容的提问来源于stack exchange,提问作者VladimirB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:36:02