【发布时间】:2015-05-13 11:12:09
【问题描述】:
我在一个目录中有很多数据,我想找到任何不是数字的双字实例。我从here开始:
\b(\w+) \1\b
并将其扩展为在结果中包含我不想要的内容:
(?!(?:one|two|three|four|five|six|seven|eight|nine|oh|zero))\b(\w+) \1\b
当我将它作为 python 表达式放入 regex101 时,这有效(因为这是我所熟悉的),但当我在 grep 命令中使用它时无效。我意识到我不能使用 !,所以我在阅读 this question 后尝试了这个:
grep -Proh "\b(\w+) \1\b" | grep -Prohv "?(?:one|two|three|four|five|six|seven|eight|nine|oh|zero)"
返回“grep:没什么可重复的”。我不确定我是否使用了正确的 grep 参数,或者我正在使用的正则表达式有什么问题。
要匹配的样本数据:
今天来评估可能性。怀疑这种情况正在发生
要忽略的示例数据:
比重一点零零七
【问题讨论】:
-
与 -P
\b(?!(?:eight|f(?:ive|our)|nine|o(?:h|ne)|s(?:even|ix)|t(?:hree|wo)|zero))(\w+) \1\b一起使用