如果要检查的关键字是其他。它不应该在字母数字字符之前或之后。
允许使用空格,\ n允许,允许使用特殊字符。
不允许 - " AOther9"," noTHERX"
允许 - "其他"," \ nother" ,"其他"," $ other /"
grepl(paste("[^a-zA-Z0-9]","other","[^a-zA-Z0-9]",sep=""),String1 , ignore.case = TRUE)
上述正则表达式适用于除“check”之外的所有情况 - 当检查之前和之后都没有。
答案 0 :(得分:3)
您需要使用具有外观的PCRE正则表达式:
grepl(paste("(?<![a-zA-Z0-9])","other","(?![a-zA-Z0-9])",sep=""), String1, ignore.case = TRUE, perl=TRUE)
^^^^ ^ ^^^ ^ ^^^^^^^^^
负面外观不会消耗非字母数字字符,它们不要求这些字符实际存在于字符串中。
答案 1 :(得分:1)
在倒置范围中添加*
量词,然后开始^
并结束$
行锚点:
String1 <- c("AOther9", "noTHERX", "other", "\nother", " other ", "$other/")
grep('^[^a-z0-9]*other[^a-z0-9]*$', String1, ignore.case = TRUE, value = TRUE)
# [1] "other" "\nother" " other " "$other/"