我正在尝试删除以下字符串中的所有中文字符:
x <- "2.87Y 1282501 12电网MTN4 AAA 4.40 /4.30* 2000、" 我该怎么做呢?
发布于 2017-11-02 14:37:40
我用谷歌搜索了一下,找到了a page about Unicode character ranges。在查看了一些CJK (中文、日文、韩文) Unicode范围后,我得出的结论是,如果所有字符串都与此特定字符串相似,则需要删除以下Unicode范围。
用于中日韩符号和标点符号的统一
4E00-9FFF Ideographs3000-303F 使用gsub(),我们可以
gsub("[\U4E00-\U9FFF\U3000-\U303F]", "", x)
# [1] "2.87Y 1282501 12MTN4 AAA 4.40 /4.30* 2000"数据:
x <- "2.87Y 1282501 12电网MTN4 AAA 4.40 /4.30* 2000、" 发布于 2017-11-02 18:29:44
您也可以使用iconv来完成此操作。这将删除所有非ASCII字符,包括中文、日文、韩文等。
iconv(x, "latin1", "ASCII", sub="")
#[1] "2.87Y 1282501 12MTN4 AAA 4.40 /4.30* 2000"发布于 2019-05-24 14:29:44
汉字unicode范围为\u4E00-\u9FA5
首先使用re.findall(u'[^\u4E00-\u9FA5]', string)获取字符串中的非中文字符列表,然后扫描字符串并删除该列表中不包含的所有字符。
试试这个:
import re
def strip_chinese(string):
en_list = re.findall(u'[^\u4E00-\u9FA5]', string)
for c in string:
if c not in en_list:
string = string.replace(c, '')
return stringhttps://stackoverflow.com/questions/47068770
复制相似问题