我有一个句子向量,例如:
example <- c("text text word1 text text word2 text text", ...)我试图找出哪些句子符合以下规则:
这可以用一个正常的正则表达式来完成。但是,问题是"word1“或"word2”可以包含排字(我预计两个单词最多距离为3)。键入的例子可以是"wrod1“、"woord2”、"wrd1“等等。我还想在距离约束范围内匹配包含这些单词的排字的句子。因此,我试图使用agrepl
agrepl("(?:.*?)\\bword1\\b(?:\\s(?:\\w+\\s){0,3})\\bword2\\b(?:.*?)", example, fixed=FALSE, max=3)然而,我相信距离是用整个句子来计算的,而不仅仅是用"word1“和"word2”来计算,因此我几乎永远不会用这种方式得到任何匹配。对于如何解决这一问题,有什么建议吗?还是存在任何解决这个问题的最佳工具?
发布于 2016-02-17 11:26:46
这符合你的规则,但我不知道你的排字会是什么样子。如果你能举个例子,那就太好了。
^(?=.*word1\s+(?:\S+\s+){0,3}word2.*$).* 演示
https://stackoverflow.com/questions/35455212
复制相似问题