0

我正在尝试构建一个使用 Ragrepl进行近似匹配的函数。我正在使用正则表达式模式,从我的角度来看,它不被视为正则表达式。

我通过在我的 REPL 中运行以下测试得出了这个结论:

> patterns <- c("ha","^ha","ha$","^ha$","(^)ha","ha($)")

> sapply(patterns,agrepl,x="ha",max.distance=0L,fixed=FALSE)
  ha   ^ha   ha$  ^ha$ (^)ha ha($) 
TRUE  TRUE  TRUE  TRUE FALSE FALSE 

> sapply(patterns,grepl,x="ha",fixed=FALSE)
  ha   ^ha   ha$  ^ha$ (^)ha ha($) 
TRUE  TRUE  TRUE  TRUE  TRUE  TRUE

我不太擅长使用正则表达式,但我很确定我的所有模式都应该匹配“ha”。

假设我是对的并且不应该发生上述行为,您能否提出另一个功能/解决方案以将我的模式与“ha”相匹配?

更具体地说,我需要一个模糊匹配器来帮助我在非结构化数据中找到关键字。

更新我应该指出,我使用正则表达式的唯一原因是因为我正在寻找关键字(与它们周围的空格匹配)。如果我可以确保“haha”不会匹配“ha”但“ha foo”会匹配,那么这个问题就不需要正则表达式。

4

0 回答 0