我正在尝试从以下字符串中删除所有的中文字符:
我该怎么做?
x <- "2.87Y 1282501 12电网MTN4 AAA 4.40 /4.30* 2000、"
我该怎么做?
4E00-9FFF
用于CJK统一表意符号3000-303F
用于CJK符号和标点使用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、"
iconv
来实现此操作。这将删除所有非ASCII字符,包括中文、日文、韩文等。iconv(x, "latin1", "ASCII", sub="")
#[1] "2.87Y 1282501 12MTN4 AAA 4.40 /4.30* 2000"
中文字符的 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 string
> str_replace_all("先秦兩漢", "[\u2E80-\u2FD5\u3190-\u319f\u3400-\u4DBF\u4E00-\u9FCC\uF900-\uFAAD]", "")
[1] ""