如果要检查的关键字是其他。它的前面或后面不应有字母数字字符。
允许空格、\n 允许、特殊字符允许。
不允许 - “AOther9”、“noTHERX”
允许 - "other"、"\nother"、"other "、"$other/"
grepl(paste("[^a-zA-Z0-9]","other","[^a-zA-Z0-9]",sep=""),String1 , ignore.case = TRUE)
上面的正则表达式适用于除“check”以外的所有情况 - 当 check 前面和后面没有任何内容时。
最佳答案
您需要使用带有环视的 PCRE 正则表达式:
grepl(paste("(?<![a-zA-Z0-9])","other","(?![a-zA-Z0-9])",sep=""), String1, ignore.case = TRUE, perl=TRUE)
^^^^ ^ ^^^ ^ ^^^^^^^^^
否定查找不会消耗非字母数字字符,它们不要求这些字符实际存在于字符串中。
您可以阅读more about lookarounds here .
关于正则表达式仅拒绝非字母数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37594020/