查找包含不在其他字符串之前的字符串的模式

use*_*199 1 string grep r

我想使用greplR中的函数来查找字符串是否包含某些内容,但条件是它不在其他内容之前.

所以例如说我想找到一个包含模式的字符串'xx',只要它不在前面'yy'.所以:

'123xx45' 世界回归 TRUE

'123yy4xx5'也会TRUE因为'yy'不在前面而返回'xx'

但是'123yyxx45'会回来FALSE.

如果有什么不清楚或者你想要一个更好的例子,请告诉我.

Doc*_*Dan 6

怎么样grepl('(?<!yy)xx', c('123yy4xx5','123xx45','123yyxx45'), perl=TRUE)?

  • @ user1165199这是[关于外观断言的链接](http://www.regular-expressions.info/lookaround.html).组中的关键字符是`(?=)`正向前瞻,`(?!)`(负向前瞻,"(?<=)"正向后观和"(?<!)"负向后视.它只适用于你设置`perl = TRUE`. (3认同)
  • +1 - 你能解释括号内的`?<`吗? (2认同)
  • @ user1165199,因为Dan医生很忙我发现它是一个*零宽度负向后看断言*,它允许你匹配不在其他东西之前的东西,在这种情况下`yy` (2认同)