如何使用正则表达式删除没有单词的行?

Vic*_*Lam 16 regex textmate oniguruma

我正在使用textmate来编辑文件.我想删除所有不包含单词的行.这是一个例子.

apple ipad
hp touch pad
samsung galaxy tab
motorola xoom
Run Code Online (Sandbox Code Playgroud)

如何使用单词pad删除所有行,并使用正则表达式获得此结果?

apple ipad
hp touch pad
Run Code Online (Sandbox Code Playgroud)

谢谢大家.

kiz*_*izu 36

替换^(?!.*pad.*).+$为空字符串

  • @natansun`(?!)`是一个“负超前”,其本身的宽度为零,但仅在找不到内容时才匹配。因此,我们只在一行中查找任何东西-。+,然后查看它是否不包含以其他符号为前缀的pad或-(?!。* pad。*)。将找到表达式,我们可以将其替换为一个空字符串,该字符串将基本上删除该行。 (3认同)
  • 我稍微调整了一下并使用 `^(?!.*(10039|10038|10037|10036).*).+$\n` 来替换没有任何我想要的单词的行,并删除过程中换行。 (3认同)
  • 您能解释一下这个正则表达式吗?@kizu (2认同)

dax*_*tro 5

我不确定使用正则表达式做这种事情,但你可以很容易地使用grep来做到这一点.

例如,如果文件文件包含以下内容:

apple ipad
hp touch pad
samsung galaxy tab
motorola xoom
Run Code Online (Sandbox Code Playgroud)

打开终端,然后运行以下命令:

grep pad textfile
Run Code Online (Sandbox Code Playgroud)

它输出这个:

apple ipad
hp touch pad
Run Code Online (Sandbox Code Playgroud)

如果要将输出保存到文件,可以执行以下操作:

grep pad textfile > filteredfile
Run Code Online (Sandbox Code Playgroud)