gpt4 book ai didi

python - 使用正则表达式从字符串中仅提取 Unicode 字符

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:20 25 4
gpt4 key购买 nike

我想使用正则表达式从字符串中提取 Unicode 字符,从字符串或文本文件中删除 ASCII、数字和特殊符号,是否可以使用正则表达式。例如,我只想要来自新闻文章的文本中的印地语或中文字符。

最佳答案

如上所述,ASCII 是 Unicode 的一个子集,因此这个问题按原样没有意义。如果你真的想从字符串中删除 U+0080 以下的所有代码点,那很容易:

re.sub(r"[\x00-\x7f]+", "", mystring)

如果您只想保留某些“列入白名单”的字符,则需要准确指定要保留的代码点。

例如,要保留 Devanagari 代码点(用于编写印地语),您可以使用

re.sub(r"[^\u0900-\u097F]+", "", mystring)

或(Python 2,感谢@bobince 的提示!)

re.sub(ur"[^\u0900-\u097F]+", "", mystring)

你确实需要确保你正在处理 Unicode 字符串,所以不要忘记解码/编码你的输入字符串:

url = 'http://www.bhaskar.com/'
data = urllib2.urlopen(url).read().decode("utf-8-sig")
regex = re.compile(ur"[^\u0900-\u097F]+")
hindionly = regex.sub("foo", data)
print hindionly.encode("utf-8")

关于python - 使用正则表达式从字符串中仅提取 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23633796/

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