为正则表达式创建预定义集。 (gsub,grepl,...)
creating a pre-defined set for reg-exp. (gsub, grepl,...)
您好,我正在尝试创建一个特殊的字符串,就像在 grepl (R
) 中的 digit
一样。
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
中使用它
据我所知,您不能创建[:digit:]
、[:space:]
、[:alnum:]
、[:punct:]
, 等等...因为它们内置于内部正则表达式引擎中;它们不特定于 grepl
或 regexp
等函数,也不是由 R 控制的。
然而,做这样的事情会让你得到本质上相同的行为:
special_chars <- "[>\-\!<\=]"
string <- c("a>-787", "ahigji<=!5")
##
R> grepl(special_chars, string)
#[1] TRUE TRUE
试试这个
special_characters <- c(">-!", "<=!")
spchars <- paste(special_characters, collapse='|')
grepl(spchars, string)
它的工作原理是使用 |
,又名 "or" 检查您放入 special_characters
中的任何字符串。它们甚至可以是正则表达式!
您好,我正在尝试创建一个特殊的字符串,就像在 grepl (R
) 中的 digit
一样。
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
据我所知,您不能创建[:digit:]
、[:space:]
、[:alnum:]
、[:punct:]
, 等等...因为它们内置于内部正则表达式引擎中;它们不特定于 grepl
或 regexp
等函数,也不是由 R 控制的。
然而,做这样的事情会让你得到本质上相同的行为:
special_chars <- "[>\-\!<\=]"
string <- c("a>-787", "ahigji<=!5")
##
R> grepl(special_chars, string)
#[1] TRUE TRUE
试试这个
special_characters <- c(">-!", "<=!")
spchars <- paste(special_characters, collapse='|')
grepl(spchars, string)
它的工作原理是使用 |
,又名 "or" 检查您放入 special_characters
中的任何字符串。它们甚至可以是正则表达式!