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

正则表达式匹配问题:如何提取字符串第一个下划线后的全部内容

解决第一个下划线后内容提取的问题

嘿,这个坑我踩过!你现在遇到的是正则表达式贪婪匹配的问题——.+会尽可能多地抓取字符,直接跳到最后一个下划线才停下,所以才会截断到最后一个单词。给你两个实用的解决办法:

方法1:修改正则为非贪婪匹配

把正则里的.+改成.+?(非贪婪模式),它就会在碰到第一个下划线时停止匹配,这样就能正确捕获第一个下划线之后的所有内容:

import re
test = ['S123X_ILL_BE_BACK','BA34_HASTA_LA_VISTA_BABY','JA3841_SARAH','J102_CONNOR']
result = [re.sub(".+?_(.+)", r"\g<1>", gg) for gg in test]
print(result)
# 输出:['ILL_BE_BACK', 'HASTA_LA_VISTA_BABY', 'SARAH', 'CONNOR']

方法2:用字符串split方法(更简单高效)

其实完全没必要用正则,Python字符串的split方法支持指定分割次数,直接取第一刀之后的内容就行,代码更简洁易懂:

test = ['S123X_ILL_BE_BACK','BA34_HASTA_LA_VISTA_BABY','JA3841_SARAH','J102_CONNOR']
# 指定分割1次,取分割后的第二部分
result = [gg.split('_', 1)[1] for gg in test]
print(result)

这个方法不仅性能更好,而且不需要记正则规则,出错概率更低,个人更推荐这个方案~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:19:41