python3.7
''' 1.正则匹配串前加了r就是为了使得里面的特殊符号不用写反斜杠了。 2.[ ]具有去特殊符号的作用,也就是说[(]里的(只是平凡的括号 3.正则匹配串里的()是为了提取整个正则串中符合括号里的正则的内容 4. .是为了表示除了换行符的任一字符。*克林闭包,出现0次或无限次。 5. 加了?是最小匹配,不加是贪婪匹配。 6. re.S是为了让.表示除了换行符的任一字符。 '''
p = re.compile(r'[(](.*)[)]', re.S)
由上图可知,【贪婪匹配】最终获取的为【最外层括号包含的内容 】
p = re.compile(r'[(](.*?)[)]', re.S)
由上图可知,【最小匹配】最终获取的为【字符串中除含有嵌套子括号外的全部括号内容 】
import re string1 = '海堤(段)终点坐标(东经)(度)' string2 = "分(泄)洪闸(节制闸、排退水闸、引进水闸、挡潮闸)设计过闸流量" p = re.compile(r'[(](.*?)[)]', re.S) new_str1 = re.sub(p,'',string1) new_str2 = re.sub(p,'',string2) print(f"new_str1:{new_str1}") print(f"new_str2:{new_str2}")