0

嗨,我正在尝试创建一个特殊的字符串,就像digit在 grepl ( R) 中一样。

string <- c("a>-787", "ahigji<=!5")

说,

 special_characters <- c(">-!", "<=!")

现在我正在尝试查看字符串中是否有带有special characters.

  grepl("special_characters", string) 

我也试过 grepl("[special_characters]", string) , grepl("[[:special_characters:]]", string)

但它给了我一个无关紧要的答案!关于测试不同的字符串。

我只想使用类似的东西[[:digit]]-简而言之,我需要创建一个预定义的集合,并且需要在grepl or gsub

4

2 回答 2

1

据我所知,您将无法创建 , , , 等的等价物[:digit:]...[:space:]因为[:alnum:]这些[:punct:]是内置在内部正则表达式引擎中的;它们不是特定于greplor之类的函数regexp,也不是由 R 控制的。

然而,做这样的事情会让你得到基本相同的行为:

special_chars <- "[>\\-\\!<\\=]"
string <- c("a>-787", "ahigji<=!5")
##
R> grepl(special_chars, string)
#[1] TRUE TRUE
于 2015-12-02T14:03:35.433 回答
1

尝试这个

special_characters <- c(">-!", "<=!")
spchars <- paste(special_characters, collapse='|')
grepl(spchars, string)

它通过使用|,也就是“或”来检查您输入的任何字符串special_characters。它们甚至可以是正则表达式!

于 2015-12-02T14:47:22.533 回答