我有一个字符串,我想在python中使用正则表达式替换删除大括号的内容,除了位于#
字符之后和.
字符之前的括号内的任何数字(3) ,在下面的示例中),以及圆括号内的任何文本完全由字母组成。 (以下示例中的“信息”)
我把它放在一起解决第一个问题,但它不起作用(我是regex的绝对初学者)。
string = 'Name, Other "Else" (2000) (info) {empty (#3.99)}'
r= re.sub(r'(^?={))?\{.+\(#(\d+)\.\d+\)\}','',string)
print r
理想的输出应该是:
Name, Other "Else" (2000) (3)
感谢任何帮助
答案 0 :(得分:2)
试试这个:
re.sub(r'\(\d*\D+\d*\)\s+','',re.sub(r'\{.+?\#(\d+)\.\d+\)}',r'(\1)',s))
这样做与大括号内的数字相匹配,然后使用捕获(括号内的部分)来获得所需的字符串。
旁注:最好不要使用字符串作为变量的名称,因为这可能与“字符串”模块冲突。