我做了什么
我写了一个正则表达式,它匹配所有文本字符串
"A"
和
"BV"
在使用本教程之间使用0-10个单词:
https://www.regular-expressions.info/near.html
df<- data.frame(text=c("ART 6 dasd asd NOT art 2 BV","NOT ART 6 ds as dd BV","ART 6 NO BV"),
id=c(1,2,3))
subset(df, grepl("(ART)(?:\\W+\\w+){0,10}?\\W+(\\bBV\\b)",
perl=TRUE,
ignore.case = TRUE,
text))
text id
1 ART 6 dasd asd NOT art 2 BV 1
2 NOT ART 6 ds as dd BV 2
3 ART 6 NO BV 3
我想得到的
现在,我想重写如果列表中出现任何单词(即
NOT
和
NO
在示例数据中)在“a”和“bv”之间的0-10个字中。
结果是:
subset(df, grepl("NEWREGEX",
perl=TRUE,
ignore.case = TRUE,
text))
text id
1 NOT ART 6 ds as dd BV 2
我想我可以用
?!
但我想不出来