正则表达式删除punct删除R中的非标点字符

时间:2015-05-02 08:17:25

标签: regex r punctuation

在希伯来语中过滤和清理文本时,我发现了

gsub("[[:punct:]]", "", txt)

实际上删除了相关的字符。字符是“ק”,它位于键盘上的“E”位置。有趣的是,R中的gsub函数删除了“ק”字符,然后所有单词都搞砸了。有谁知道为什么?

1 个答案:

答案 0 :(得分:2)

根据Regular Expressions as used in R

  

某些命名的字符类是预定义的。其   解释取决于区域设置(见locales);解释   下面是POSIX语言环境。

度Acc。到POSIX语言环境,[[:punct:]]应该捕获! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~。因此,您可能需要调整正则表达式以仅删除所需的字符:

txt <- "!\"#$%&'()*+,\\-./:;<=>?@[\\\\^\\]_`{|}~"
gsub("[\\\\!\"#$%&'()*+,./:;<=>?@[\\^\\]_`{|}~-]", "", txt, perl = T)

Sample program输出:

[1] ""