grep 中的正则表达式先行查找 'not followed by'

标签 regex grep regex-lookarounds

我正在尝试 grep 查找 Ui\. 的所有实例,后面没有 Line 甚至只是字母 L

编写正则表达式来查找特定字符串的所有实例(后面没有另一个字符串)的正确方法是什么?

使用前瞻

grep "Ui\.(?!L)" *
bash: !L: event not found


grep "Ui\.(?!(Line))" *
nothing

最佳答案

负向前瞻,这就是您所追求的,需要比标准 grep 更强大的工具。您需要一个启用 PCRE 的 grep。

如果您有 GNU grep,当前版本支持选项 -P--perl-regexp,然后您可以使用正则表达式你想要的。

如果您没有(足够新的版本)GNU grep,那么请考虑获取 ack .

关于grep 中的正则表达式先行查找 'not followed by',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197814/

相关文章:

grep - 使用 grep/sed/awk 查找并替换 URL?

regex - 需要使用 Notepad++ RegEx 来查找和删除大括号之间的字符

python - 匹配正则表达式中的连续数字,同时忽略 python3 中的破折号

Java 链接正则表达式

javascript - 如何用链接替换普通 URL,例如?

java - 用于匹配特定文件格式和空字符串的正则表达式

linux - 将 .str 文件中的洞 .xsl 内容提取到 xsl/txt 文件

javascript - 如何在 javascript 中匹配正则表达式?

grep - 在 grep 中使用 OR

c# - RegEx 之后用特定文本捕获执行时间