r grepl 区分no和not
r grepl to distinguish between no and not
我正在处理如下两个字符串
x1 <- "Unknown, because not discussed"
x2 <- "Not at goal, no."
如何使用 grepl 函数来区分这两个字符串?
当我使用grepl("no", x1)
时,它显示TRUE,这是不正确的。这是在选择 not
或 Unknown
中的否。我如何使用字符串解析函数来显式检测带有单词 no
的字符串?非常感谢任何建议。
可以用字界线\b
来区分。 \bno\b
将只匹配 no
而没有前后单词字符:
grepl("\bno\b", x1)
# [1] FALSE
grepl("\bno\b", x2)
# [1] TRUE
我能想到几个匹配选项 "no" 但不能 "not":
使用 \b
"word boundary" 模式:
> x = c("Unknown, because not discussed", "Not at goal, no.")
> grepl("\bno\b", x)
[1] FALSE TRUE
使用[^t]
排除"not":
> grepl("\bno[^t]", x)
[1] FALSE TRUE
要单独匹配单词 "no",单词边界选项 "\bno\b"
可能是最好的。
我正在处理如下两个字符串
x1 <- "Unknown, because not discussed"
x2 <- "Not at goal, no."
如何使用 grepl 函数来区分这两个字符串?
当我使用grepl("no", x1)
时,它显示TRUE,这是不正确的。这是在选择 not
或 Unknown
中的否。我如何使用字符串解析函数来显式检测带有单词 no
的字符串?非常感谢任何建议。
可以用字界线\b
来区分。 \bno\b
将只匹配 no
而没有前后单词字符:
grepl("\bno\b", x1)
# [1] FALSE
grepl("\bno\b", x2)
# [1] TRUE
我能想到几个匹配选项 "no" 但不能 "not":
使用 \b
"word boundary" 模式:
> x = c("Unknown, because not discussed", "Not at goal, no.")
> grepl("\bno\b", x)
[1] FALSE TRUE
使用[^t]
排除"not":
> grepl("\bno[^t]", x)
[1] FALSE TRUE
要单独匹配单词 "no",单词边界选项 "\bno\b"
可能是最好的。