a <- "quick brown fox"
b <- "quick brown dog"
我想知道&#34;快速&#34;和&#34;狐狸&#34;字符串存在于a,b中。
即, 应用这个问题的答案,
a - 应该返回TRUE
b - 应该返回FALSE
答案 0 :(得分:0)
我们可以使用双grepl
&
(更安全)
grepl('quick', a) & grepl('fox', a)
#[1] TRUE
grepl('quick', a) & grepl('fox', b)
#[1] FALSE
或者如果我们事先知道'狐狸'的位置,即它是否在quick
之后(如示例中所示),那么我们可以使用正则表达式'快速',后跟0或更多字符后跟'狐狸'。我们也可以使用单词边界(\\b
)进行侧翼以避免意外,即避免匹配quickness
或foxy
等字词。
grepl('.*\\bquick\\b.*\\bfox\\b', a)
#[1] TRUE
grepl('.*\\bquick\\b.*\\bfox\\b', b)
#[1] FALSE
正如我之前提到的,这会为FALSE
foxy
grepl('.*\\bquick\\b.*\\bfox\\b', 'quick brown foxy')
#[1] FALSE
如果职位变化,
grepl('.*\\bquick\\b.*\\bfox\\b|.*\\bfox\\b.*\\bquick\\b', b)
#[1] FALSE
grepl('.*\\bquick\\b.*\\bfox\\b|.*\\bfox\\b.*\\bquick\\b', a)
#[1] TRUE