我有以下文字:
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+个字符,然后是]
,即,它可以跨[
和]
匹配。