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)\(.*?\)
|
4
Hopetree 2018-04-17 11:28:34 +08:00
\s((?!MAX)[A-Z]+?\(.+?\))
\s 表示大写字母前面的空格,(?!MAX)表示不匹配这个,[A-Z]+?表示匹配大写字母,\(.+?\)括号和里面的内容 |