文章目录
简介
分享python 字符串操作的一些有趣的案例:
- 正则表达式
- format
…
删除文本中的括号和其中的文本
存在中英文括号混用,故要考虑到所有可能到情况
import re
def remove_all_parentheses(text):
# 正则表达式模式,匹配所有类型的括号
for left, right in ['()', '()', '()', '()']:
pattern = f'\{left}[^()()]*?\{right}'
text = re.sub(pattern, '', text)
return text
# 示例
text = "a(delete)b(delete)c(delete)d(7)e()f()g"
print(remove_all_parentheses(text))
输出结果如下:
abcdefg
[^()()]
: 使用这个确保,在括号中不会包括括号;因为for循环每次迭代的括号不同,避免删除掉其他的括号;
踩坑
在 re 正则匹配中,习惯了使用 .
作为通配符,去匹配所有的数据。导致常常忽略.
不能匹配换行符。
使用 re.DOTALL
,让.
匹配所有字符:
re.findall("请你逐一浏览(.*?)的格式输出", ex["prompt"], re.DOTALL)