python 中
data = r'test TES(1+2) MAX(3+2) AX(4+5)'
x=r'([^()]*)'
x=r'[A-Z]+' + x
b=re.findall(x,data)
print(b)
要求输出 ['TES(1+2)','AX(4+5)']
排除掉前缀为 MAX 的字符串,我尝试前面加(?!MAX) 但不成功
![]() | 1 xiangyuecn 2018-04-17 11:14:52 +08:00 来一发正则表达式 \b(?!max)\w+?\(.+?\) |
2 dwjgwsm OP |
3 LadyChunsKite 2018-04-17 11:26:42 +08:00 酱紫也行:[A-Z]+(?<!MAX)\(.*?\) |
![]() | &nsp; 4 Hopetree 2018-04-17 11:28:34 +08:00 \s((?!MAX)[A-Z]+?\(.+?\)) \s 表示大写字母前面的空格,(?!MAX)表示不匹配这个,[A-Z]+?表示匹配大写字母,\(.+?\)括号和里面的内容 |