我做什么
我编写了一个正则表达式,使用本教程将"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
我想要得到的东西
现在,我想重写一个不匹配的正则表达式,如果在“”之间的0-10个单词中出现列表中的任何单词(即示例数据中的NOT
和NO
) A”和“ BV”。
所以结果看起来像:
subset(df, grepl("NEWREGEX",
perl=TRUE,
ignore.case = TRUE,
text))
text id
1 NOT ART 6 ds as dd BV 2
我认为我可以使用类似?!
之类的东西,但我无法弄清楚
答案 0 :(得分:0)
感谢 akrun ,我们有一个非常好的解决方案:
DeviceNumber