从Python中的字符串中删除非字母数字unicode字符

问题描述 投票:0回答:2

如何转换该字符串:

"\xa0かかわらず"

到这个字符串?:

"かかわらず"

即如何删除非字母数字 unicode 字符?我尝试过将字符串编码为 ascii 的解决方案,但它不适用于日语符号。

python utf-8 ascii
2个回答
0
投票

使用 re.sub 将 \W (非单词)模式替换为空字符串应该可以,例如

re.sub(r'\W', '', "\x0aかか\x0aわらず")

– Metatoaster 2019 年 7 月 18 日 2:59

这有效。由于 Metatoaster 只是将其写为评论,并不是每个人都会阅读它们,所以我可以随意将其写为实际答案......


0
投票

如果

\xa0かかわらず
是需要处理的实际字符串(假设 \xa0 不是一个字符,而是 4 个字符的子字符串),我们可以使用正则表达式
[A-Za-z]|\P{L}
删除任何不是任何语言中的字母的字符,或者是一封来自
[A-Za-z]
的信。

import regex

pattern = regex.compile(r'(?![A-Za-z])\p{L}')
print(regex.sub(pattern, '', ' \\ x a 0 かか1わ ら.ずz'))
>>> かかわらず

注意:正则表达式不在标准Python库中。

© www.soinside.com 2019 - 2024. All rights reserved.