我试图删除R中的特定多字节字符。
Multibyte <- "Sungpil_한성필_韓盛弼_Han"Multibyte的语言结构是"English_Korean_Chinese_English“,我想删除的是韩语或汉语(不是两者兼而有之)。
期望的结果是:
Sungpil_한성필__Han # Chinese characters were removed. 或
Sungpil__韓盛弼_Han # Korean characters were removed.有什么简单的方法可以通过使用gsub来实现呢?我只知道一种只获取英语字符的方法。
gsub("[^A-Za-z_]", "", Multibyte)
[1] "Sungpil___Han"发布于 2016-11-25 09:39:18
回答问题本身,是的,您可以使用PCRE和Unicode属性类gsub来匹配韩语字符,使用\p{Han}来匹配中文字符:
> Multibyte <- "Sungpil_한성필_韓盛弼_Han"
> gsub("\\p{Hangul}+", "",Multibyte, perl=TRUE)
[1] "Sungpil__韓盛弼_Han"
> gsub("\\p{Han}+", "",Multibyte, perl=TRUE)
[1] "Sungpil_한성필__Han"见R在线演示。
但是,如果您有输入文本的特定结构,请使用其他解决方案。
发布于 2016-11-25 08:28:56
我们可以试试sub
sub("[^_]+_([A-Za-z]+)$", "_\\1", Multibyte)
#[1] "Sungpil_한성필__Han"https://stackoverflow.com/questions/40800518
复制相似问题