首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于删除R中特定多字节字符的正则表达式

用于删除R中特定多字节字符的正则表达式
EN

Stack Overflow用户
提问于 2016-11-25 08:24:29
回答 2查看 547关注 0票数 2

我试图删除R中的特定多字节字符。

代码语言:javascript
复制
Multibyte <- "Sungpil_한성필_韓盛弼_Han"

Multibyte的语言结构是"English_Korean_Chinese_English“,我想删除的是韩语或汉语(不是两者兼而有之)。

期望的结果是:

代码语言:javascript
复制
Sungpil_한성필__Han   # Chinese characters were removed. 

代码语言:javascript
复制
Sungpil__韓盛弼_Han   # Korean characters were removed.

有什么简单的方法可以通过使用gsub来实现呢?我只知道一种只获取英语字符的方法。

代码语言:javascript
复制
gsub("[^A-Za-z_]", "", Multibyte)
[1] "Sungpil___Han"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-25 09:39:18

回答问题本身,是的,您可以使用PCRE和Unicode属性类gsub来匹配韩语字符,使用\p{Han}来匹配中文字符:

代码语言:javascript
复制
> Multibyte <- "Sungpil_한성필_韓盛弼_Han"
> gsub("\\p{Hangul}+", "",Multibyte, perl=TRUE)
[1] "Sungpil__韓盛弼_Han"
> gsub("\\p{Han}+", "",Multibyte, perl=TRUE)
[1] "Sungpil_한성필__Han"

R在线演示

但是,如果您有输入文本的特定结构,请使用其他解决方案。

票数 4
EN

Stack Overflow用户

发布于 2016-11-25 08:28:56

我们可以试试sub

代码语言:javascript
复制
sub("[^_]+_([A-Za-z]+)$", "_\\1", Multibyte)
#[1] "Sungpil_한성필__Han"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40800518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档