Regex 如果表达式不';不匹配

Regex 如果表达式不';不匹配,regex,Regex,看似简单的任务。如果没有找到匹配项,我需要显示一行。或者,换一种方式说,如果找到匹配项,我不需要显示一行。我怀疑这涉及某种前瞻性断言,但不知道如何实现 我试着找到一个匹配,然后用^否定它。但这似乎不起作用。还尝试查找一个匹配项并将{0}放在它旁边:(wordhere){0}您确实可以使用负前瞻。例如 ^(?!something$).*$ 将匹配除“某物”之外的任何内容 请注意,如果进行正匹配并使用控制结构(如if not…)来定义打印的行和未打印的行,则阅读可能更合适、更好。如果可以使用gre

看似简单的任务。如果没有找到匹配项,我需要显示一行。或者,换一种方式说,如果找到匹配项,我不需要显示一行。我怀疑这涉及某种前瞻性断言,但不知道如何实现


我试着找到一个匹配,然后用^否定它。但这似乎不起作用。还尝试查找一个匹配项并将{0}放在它旁边:(wordhere){0}

您确实可以使用负前瞻。例如

^(?!something$).*$
将匹配除“某物”之外的任何内容

请注意,如果进行正匹配并使用控制结构(如
if not…
)来定义打印的行和未打印的行,则阅读可能更合适、更好。

如果可以使用grep

grep -v <expr> 
grep-v

做您想要的。

如果找到匹配项,则不显示行您使用的是什么语言?难道你不能只使用你的语言逻辑求反操作符(可能是
)来反转匹配的结果,然后输出你的行吗?正则表达式并不擅长只显示不匹配的行。事实上,我甚至不确定是否有一个好方法来找出你的电话号码。您可能需要将文件拆分为一个数组,\r\n然后在每一行上运行正则表达式,如果匹配,则跳过它。如果不匹配,请将行号添加到另一个数组中。然后您将有两个数组,一个包含数据,另一个包含不匹配的行号。