如何从文本文件中提取指定分隔符间的目标字符串?
提取指定分隔符间字符串的几种实现方法
嘿,这个需求很好解决!我给你分享两种实用的方案,不管你习惯用脚本还是命令行工具都能搞定:
方法一:用Python脚本处理
Python的正则表达式模块re刚好能完美应对这种提取需求。核心思路是用非贪婪匹配精准抓取两个分隔符之间的内容,避免匹配到多余字符。
代码示例:
import re # 读取你的文本文件内容 with open("your_file.txt", "r", encoding="utf-8") as f: content = f.read() # 定义正则模式:匹配分隔符4EF"]\n,"和\之间的内容 pattern = r'4EF"]\n,"(.*?)\' # 提取所有符合条件的字符串 results = re.findall(pattern, content) # 输出结果 for item in results: print(item)
关键说明:
(.*?)是非贪婪匹配,会尽可能短地抓取两个分隔符之间的内容,防止把多个目标字符串连在一起匹配。- 正则里的
\n和\都做了转义处理,确保能准确匹配文本里的换行和反斜杠。
方法二:用命令行工具(GNU grep)快速提取
如果你不想写脚本,用Linux/macOS下的GNU grep命令就能直接搞定,效率很高:
命令示例:
grep -oP '4EF"]\\n,"\K.*?(?=\\)' your_file.txt
参数解释:
-o:只输出匹配到的部分,而不是整行内容-P:启用Perl兼容的正则表达式语法\K:忽略掉\K之前匹配到的分隔符内容,只保留后面的目标字符串(?=\\):正向预查,确保匹配到第一个\就停止,避免过度匹配
运行这个命令后,终端会直接输出blue-apple和orange这两个结果。
内容的提问来源于stack exchange,提问作者Bbbb
相关产品推荐
相关产品推荐

