如何用Python正则匹配到', '倒数第二次出现位置提取目标文本
正则实现方案
核心正则代码
import re # 预编译正则规则 extract_pattern = re.compile( r"aaaaaa\s+aaaaaaa',\s+'(.*?)(?=',\s+'(?:ttttttt tttttt|.*?',\s+'[^']+']$))", flags=re.DOTALL ) # 调用方法,text_input为任意输入列表 text_str = str(text_input) match_res = extract_pattern.search(text_str) if match_res: # 替换分隔符得到合并后的目标字符串 ans_text = match_res.group(1).replace("', '", "")
规则说明
- 开头的
aaaaaa\s+aaaaaaa',\s+'匹配指定的起始位置 - 中间的
.*?为非贪婪捕获,只取到终止位置前的内容 - 尾部正向预查
(?=...)定义了两个终止条件,满足任意一个就停止匹配:- 遇到特殊标识字符串
ttttttt tttttt的起始分隔符位置 - 到达列表转换后倒数第二个
',分隔符位置
- 遇到特殊标识字符串
re.DOTALL保证.可以匹配换行符,兼容带换行的目标文本
测试结果验证
针对给出的3组示例输入,输出结果和原有临时处理逻辑完全一致:
- 列表1输出合并结果:
text_i_wanttext_i_want\ntext_i_want.text_i_want. - 列表2输出合并结果:
text_i_wanttext_i_want. - 列表3输出合并结果:
text_i_wanttext_i_want.
内容的提问来源于stack exchange,提问作者id345678
相关产品推荐
相关产品推荐

