正则表达式仅拒绝非字母数字字符

标签 regex r

如果要检查的关键字是其他。它的前面或后面不应有字母数字字符。

允许空格、\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/

相关文章:

regex - Visual Studio 2012 - 查找和替换 - 反向引用

javascript - 如何使正则表达式匹配大小写?

r - 无法在 r 中构建等值线图

r - 为什么 dplyr 过滤器不能在简单过滤器中使用空格?

python - 与命名组关联的模式

javascript - Regex JavaScript - 如何检查字符串是否全部是字母然后是数字

python - Mistune 内联 Lexar 重新编译帮助

从数据框中删除所有只有零的列或行

r - ..level.. 在 ggplot2 等高线图中

R 中的 Riverplot 包 - 网格线或轮廓覆盖的输出图