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

时间:2017-08-29 11:46:16

标签: python regex

我有以下文字:

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

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

这是我的尝试,但由于某种原因,它没有把它拿起来。

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

1 个答案:

答案 0 :(得分:0)

您需要将零宽度空格与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 +字符,然后],而正则表达式匹配{ {1}},然后是 [ 以外的0 +字符,然后是),即它可以在][之间匹配。