一行文本中包含有各种括号,如()、<>、[],我们希望把括号及括号内的内容0去除,可以通过正则表达式来实现。
匹配()
python
pattern = r'\([^)]*\)' # 匹配()
匹配一个左括号(,然后匹配0个或多个不是右括号的任意字符[^)]*,最后匹配一个右括号())。这样就可以匹配出括号里的内容。
匹配<>
python
pattern = r'\<[^>]*\>' # 匹配<>
匹配[]
python
pattern = r'\[[^]]*\]' # 匹配[]
示例代码
python
import re
text_1 = '(A)hello () world (end)'
text_2 = '<A>hello <> world <end>'
text_3 = '[A]hello [] world [end]'
pattern_1 = r'\([^)]*\)' # 匹配()
pattern_2 = r'\<[^>]*\>' # 匹配<>
pattern_3 = r'\[[^]]*\]' # 匹配[]
valid_text_1 = re.sub(pattern_1, '', text_1).strip()
valid_text_2 = re.sub(pattern_2, '', text_2).strip()
valid_text_3 = re.sub(pattern_3, '', text_3).strip()
print(valid_text_1)
print(valid_text_2)
print(valid_text_3)
输出如下:
hello world
hello world
hello world