为什么需要提取括号里的内容?
工作中经常遇到一堆杂乱的文本,比如日志文件、用户备注、产品信息,里面夹着各种用括号标注的内容。像“用户ID(张三)”、“订单编号(20240415-888)”,我们真正关心的其实是括号里的部分。手动一个个复制太费劲,学会自动提取能省下大把时间。
其实在 Excel、Python 或记事本里,都有办法快速搞定这件事,关键是选对方法。
Excel 里用公式提取小括号内容
如果你的数据在表格里,又不熟悉编程,Excel 的公式是最直接的选择。假设 A1 单元格内容是“商品名称(红色款)”,想把“红色款”单独提出来。
可以用 FIND 定位括号位置,再用 MID 截取中间内容:
=MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)这个公式先找左括号的位置,再找右括号,然后从中间截出字符。只要格式统一,批量填充就能全部处理完。
用 Python 正则表达式精准抓取
数据量大或者格式复杂时,Python 更灵活。比如你要从几百行日志中提取所有错误码,它们都写在方括号里,像 [ERR_500]、[TIMEOUT] 这样的。
用 re 模块配合正则表达式,一行代码就能搞定:
import re
text = "系统报错[ERR_500],请求超时[TIMEOUT]"
results = re.findall(r"\[(.*?)\]", text)
print(results) # 输出:['ERR_500', 'TIMEOUT']这里 \[(.*?)\] 匹配一对中括号内的任意内容,非贪婪模式确保不会跨多个括号。如果是圆括号,把 \[ 和 \] 换成 \( 和 \) 就行。
记事本+替换功能也能应急
有时候只是临时处理一个配置文件,不想写代码。用记事本++这类工具,开启正则替换也能完成任务。
比如原始内容是 user(name=admin,role=admin),想提取 admin 和 admin。打开替换面板,勾选“正则表达式”模式,在查找框输入:
.*\((.*)\,(.*)\)替换为:
\1,\2点全部替换,就能得到两个值。虽然不如编程灵活,但对付简单场景足够用了。
不同工具各有优势,关键看手头的任务是什么样。掌握这些技巧后,下次看到一串带括号的字符串,心里就有底了。