字符串:提取想要的字符而不是删除不需要的

时间:2016-03-03 11:41:43

标签: r string char

如果在R中他是一个像KeepChar("abcde....xyz", some_text)这样的函数,你可以使用你希望保留的所有想要的字符,并返回只剩下所需字符的字符串。这里的函数只保留字母表中的小写字母。我想要一些看起来像这样的东西:

some_text <- "Hel-_l0o W#oRr^ld"
some_text <- KeepChar("abcdefghijklmnopqrstuvwxyz ", some_text)
some_text
> "hello world"

我觉得我目前使用gsub("@\\w+", "", some_text)tm_map(some_text, stripWhitespace)str_replace_all(some_text,"[^[:graph:]]", " ")的删除方法花费了大量时间和编码,并且始终存在忘记删除特定字符的风险,特别是当你已经确切知道自己想要保留什么时。

为什么我问这个问题是因为我正在编写一个平台来处理来自twitter等各种来源的文本的情绪分析,我想确保不要忘记删除任何不需要的字符。

2 个答案:

答案 0 :(得分:2)

要在不使用正则表达式的情况下处理模式,我会尝试这样做:

string <- "Hel-_l0o W#oRr^ld"
pattern <- "abcdefghijklmnopqrstuvwxyz"

KeepChar = function(pattern, string){
  splitted_string <- unlist(strsplit(string, ""))
  splitted_pattern <- unlist(strsplit(pattern, ""))
  ids_string <- splitted_string %in% splitted_pattern
  return(paste(splitted_string[ids_string], sep = "", collapse = ""))
}

some_text <- KeepChar(pattern = pattern, string = string)

答案 1 :(得分:1)

你可以试试这个:

$options = [
    CURLOPT_HTTPHEADER => ['Content-type: application/json'],
    CURLOPT_URL => 'https://address/to/service?param=value',
    CURLOPT_SSL_VERIFYPEER => 0,
    CURLOPT_CAINFO => getcwd()."\cacert.pem",
    URLOPT_SSLCERT => getcwd().'\cert.pem',
    CURLOPT_SSLCERTPASSWD => 'ssl_password',
    CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
    CURLOPT_USERPWD => $soapUser.":".$soapPassword,
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => $data
];

$ch = curl_init();
curl_setopt_array($ch , $options);
$response = curl_exec($ch);

if (curl_errno($ch)) {
    print curl_error($ch); 
}else{
    print_r($response);
}

curl_close($ch);

您还可以查看页面https://stat.ethz.ch/R-manual/R-devel/library/base/html/regex.html以查看R

中可用的匹配项