Skip to main content
 首页 » 编程设计

python之在python中用正则表达式替换括号内和括号后的单词

2025年02月15日27dflying

我有以下文字:

text_to_transform = "... sistema solar número 90377;[7]\u200b[n. 3]\u200b concretamente ..." 

我正在使用正则表达式替换模式 [number]\u200b 和 [n.编号]\u200b。请注意,在此示例中,它们一个接一个地发生,但在数据中不一定如此。

这是我的尝试,但出于某种原因它没有接受。

re.sub(r'\[[^)]*\]\\u200b', '', text_to_transform) 

请您参考如下方法:

您需要将零宽度空格与 r'\u200b' 匹配。您的正则表达式正在寻找 \ 后跟 u200b 子字符串,而不是 r'\\u200b'。

查看 Python 3 演示:

>>> import re 
>>> text_to_transform = "... sistema solar número 90377;[7]\u200b[n. 3]\u200b concretamente ..." 
>>> res = re.sub(r'\[[^]]*\]\u200b', '', text_to_transform) 
>>> print(res) 
... sistema solar número 90377; concretamente ... 
>>>  

另外,请注意 \[[^]]*\] 匹配 [,然后是 ] 以外的 0+ 个字符 然后是 ],而你的正则表达式匹配 [,然后是 ) 以外的 0+ 个字符和然后是 ],即它可以匹配 [ 和 ]。