在python中用regex替换括号内和括号后的单词

2024-10-01 11:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下文字:

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

我使用regex替换模式[number]\u200b[n. number ]\u200b。请注意,在本例中,它们一个接一个地发生,但这在数据中不一定是真的

这是我的尝试,但由于某些原因,它没有拿起它

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

Tags: to数据textnumber模式transform原因regex
1条回答
网友
1楼 · 发布于 2024-10-01 11:21:18

您需要将零宽度空间与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+字符,而不是],然后是],而regex匹配[,然后是0+字符,而不是),然后是],即它可以跨[]匹配

相关问题 更多 >