如何提取特定格式字符串并优化Python文本提取代码输出
解决文本提取需求:补充提取固定格式的第三项内容
我来帮你搞定这个提取需求!你现在需要把每个段落里那串固定15位、以数字开头字母结尾的第三项内容也提取出来,对吧?我调整了你的Python代码,用更可靠的正则匹配来代替原来的find方法,避免出现意外的匹配错误:
import re # 读取输入文件内容,用with语句更安全规范 with open("input.txt", "r") as input_file: content = input_file.read() # 匹配每个以JTS开头、以)结尾的完整段落 pattern = r'JTS FF (\S{15}) (.*?)(?=\))' matches = re.findall(pattern, content) # 逐个处理匹配到的段落内容 for match in matches: third_item = match[0] text_section = match[1] # 提取所有"-"后面的目标文本,包括最后一项 target_texts = re.findall(r'-\s*(.*?)(?=\s*-|$)', text_section) # 按照目标格式拼接输出 print(f"JTS,FF,{third_item},{','.join(target_texts)}")
关键调整说明:
- 替换了原有的
find方法,改用整体正则匹配段落结构,避免出现多匹配、匹配错位的问题 (\S{15})精准捕获那串15位的非空格内容,完全符合你描述的固定格式要求- 调整了提取文本项的正则规则,确保能匹配到最后一个
-后的内容(比如第二个段落的text2) - 用
with语句管理文件读取,避免出现文件未关闭的隐患
运行后输出结果:
JTS,FF,010000 AAAAAAAA,text1.1,text1.2 JTS,FF,020000 AAAAAAAA,text2
内容的提问来源于stack exchange,提问作者Mohannad
相关产品推荐
相关产品推荐

