Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果存在特定单词,则从括号中删除文本_Python_Re - Fatal编程技术网

Python 如果存在特定单词,则从括号中删除文本

Python 如果存在特定单词,则从括号中删除文本,python,re,Python,Re,我有两个字符串,如果括号内有某个单词,我会尝试删除括号内的文本。对于s1,我可以使用下面的正则表达式获得所需的输出,但对于s2,相同的逻辑不起作用。不知道出了什么问题 s1 = '((Xyz_lk eou ) some stuff (XYZ_l))) (vc vbn XyZ no.s)' s2 = '( 100 % eou ) - 1h-imidazole 5,5- [ 1,1 -biphenyl ] -4,4 -diylbis [ 2 -- 2-pyrrolidinyl ] hydrochlo

我有两个字符串,如果括号内有某个单词,我会尝试删除括号内的文本。对于s1,我可以使用下面的正则表达式获得所需的输出,但对于s2,相同的逻辑不起作用。不知道出了什么问题

s1 = '((Xyz_lk eou ) some stuff (XYZ_l))) (vc vbn XyZ no.s)'
s2 = '( 100 % eou ) - 1h-imidazole 5,5- [ 1,1 -biphenyl ] -4,4 -diylbis [ 2 -- 2-pyrrolidinyl ] hydrochloride'
逻辑:

vc1 = re.sub(r"\s*\((\w|\s)*(eou|eou)(\w|\s)*\)", "", s1)
print(vc1)
vc2 = re.sub(r"\s*\((\w|\s)*(eou|eou)(\w|\s)*\)", "", s2)
print(vc2)
输出

vc1: (some stuff (XYZ_l))) (vc vbn XyZ no.s)
vc2: ( 100 % eou ) - 1h-imidazole 5,5- [ 1,1 -biphenyl ] -4,4 -diylbis [ 2 -- 2-pyrrolidinyl ] hydrochloride

这能解决你的问题吗

vc1 = re.sub(r"\([^())]*eou[^)]*\)", "", s1)
print(vc1)
==> ( some stuff (XYZ_l))) (vc vbn XyZ no.s)


vc1 = re.sub(r"\([^())]*eou[^)]*\)", "", s2)
print(vc1)
==>  - 1h-imidazole 5,5- [ 1,1 -biphenyl ] -4,4 -diylbis [ 2 -- 2-pyrrolidinyl ] hydrochloride

某个单词是什么?作为问题,第一个单词的输出应该是
(some stuff(XYZ_l))(vc vbn XYZ no.s)