我有一个字符串,我想在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)
任何帮助都将不胜感激
试试这个:
re.sub(r'(d*D+d*)s+','',re.sub(r'{.+?#(d+).d+)}',r'(1)',s))
这样做的目的是匹配大括号内的数字,然后使用捕获(括号内的部分)来获得所需的字符串。
注意:最好不要使用字符串作为变量的名称,因为这可能与"字符串"模块冲突。