0

我有一个字符串,我想在 python 中使用正则表达式替换来删除大括号的内容,除了位于字符之后#和字符之前的括号内的任何数字.(3,在下面的示例中),以及其中的任何文本圆括号完全由字母组成。(以下示例中的“信息”)

我已经把它放在一起来解决第一个问题,但它不起作用(我是正则表达式的绝对初学者)。

string = 'Name, Other "Else" (2000) (info) {empty (#3.99)}'

r= re.sub(r'(^?={))?\{.+\(#(\d+)\.\d+\)\}','',string)
print r

理想的输出应该是:

Name, Other "Else" (2000) (3)

任何帮助表示赞赏

4

1 回答 1

2

尝试这个:

re.sub(r'\(\d*\D+\d*\)\s+','',re.sub(r'\{.+?\#(\d+)\.\d+\)}',r'(\1)',s))

这样做是匹配大括号内的数字,然后使用捕获(括号内的部分)来获取所需的字符串。

旁注:最好不要使用字符串作为变量的名称,因为这可能与“字符串”模块冲突。

于 2013-06-25T15:51:43.617 回答