gpt4 book ai didi

python - 从 unicode 字符串中删除选定的标点符号

转载 作者:行者123 更新时间:2023-11-28 22:48:54 24 4
gpt4 key购买 nike

我正在处理一组 unicode 字符串并使用以下代码(如 Remove punctuation from Unicode formatted strings 所示):

import regex

def punc(text):
return regex.sub(ur"\p{P}+", " ", text)

我想更进一步,尝试有选择地保留某些标点符号。例如 - 不需要从 unicode 字符串中删除。最好的方法是什么?提前致谢! :)

最佳答案

您可以否定 \p{P}\P{P}然后把它和你想保留的任何字符一起放在否定字符类 ( [^…] ) 中,如下所示:

return regex.sub(ur"[^\P{P}-]+", " ", text)

这将匹配 \p{P} 中的一个或多个任意字符除了那些也在字符类中定义的。

记住 -是字符类中的特殊字符。如果它没有出现在字符类的开头或结尾,您可能需要对其进行转义。


另一种解决方案是使用否定前瞻 ((?!…)) 或否定回顾 ((?<!…))

return regex.sub(ur"((?!-)\p{P})+", " ", text)

return regex.sub(ur"(\p{P}(?<!-))+", " ", text)

但对于这样的事情,我建议改用字符类。

关于python - 从 unicode 字符串中删除选定的标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com