Edit the Expression & Text to see matches.
Expression sample
这是包含两行的文本文档。我想搜索“表达”一词,使其不跟随“匹配”字。因此输出将与“表达式样本”行匹配。 请帮助生成正则表达式。我尝试使用以下正则表达式,但这不起作用。非常感谢
^(.*)Expression(.*)(?!matches)$
答案 0 :(得分:2)
在同样的情况下,正则表达式将匹配以下内容:
Edit the Expression & Text to see matches.
^(.* )Expression(.* )(?!matches)$
正如您所看到的,第二个.*
已经消耗了字符串的其余部分,因此意味着前瞻不匹配(因为没有更多字符),并且行尾锚定匹配。< / p>
要编纂matches
Expression
之后Expression(?!.*matches)
可能不会出现的要求
(.*)
代替。如果您迫切需要它们,可选择Expression
前后固定。这个正则表达式本质上意味着.*matches
必须在某处匹配,而整个子表达式Expression
在.*
之后不得匹配比赛。由于该子表达式包含matches
,因此在此之后的任何地方都会尝试匹配 df <- data.frame(structure(list(col1= c("A", "B", "C", "D", "A"),
col2= c(1, 1, 1, 1, 5), col3 = c(2L, 1L, 1L, 1L, 1L)),
.Names = c("col1", "col2", "col3"),
row.names = c(NA, -5L), class = "data.frame"))
,如果它只匹配一次,则前瞻会失败。
答案 1 :(得分:1)
/Expression(?!.*matches)/
答案是答案。感谢anubhava帮助我。