我處理的兩個字符串這樣下面[R grepl並沒有進行區分,
x1 <- "Unknown, because not discussed"
x2 <- "Not at goal, no."
如何使用grepl功能這兩個字符串之間的區別?
當我使用grepl("no", x1)
時,它顯示TRUE,這是不正確的。這是not
或Unknown
中的否。如何使用字符串解析函數明確檢測字符串no
?任何建議是非常感謝。
我處理的兩個字符串這樣下面[R grepl並沒有進行區分,
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
我能想到幾個選項用於匹配「不」,而不是「不」:
使用\b
「字邊界」模式:
> x = c("Unknown, because not discussed", "Not at goal, no.")
> grepl("\\bno\\b", x)
[1] FALSE TRUE
使用[^t]
排除 「不」:
> grepl("\\bno[^t]", x)
[1] FALSE TRUE
爲了自己匹配單詞「否」,字邊界選項"\\bno\\b"
可能是最好的。
做到了這一點。 :) –