我有以下文字:

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)

最佳答案

您需要将零宽度空格与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+个字符,然后是],即,它可以跨[]匹配。

07-26 09:34