【问题标题】:How to remove all lines except .c extention(at last) lines using perl scripting如何使用 perl 脚本删除除 .c 扩展名(最后)行之外的所有行
【发布时间】:2013-05-16 17:07:32
【问题描述】:

我有一个字符串 $string,它有行列表,一些以 *.c、*.pdf 等结尾,还有一些没有任何扩展名(这些是目录)。我需要删除除 *.c 行之外的所有行。我如何使用正则表达式来做到这一点?我已经写过要删除 *.c 文件,如下所示,但如何不做呢?

next if $line =~ /(\.c)/i;

任何想法。

谢谢, 沙拉特

【问题讨论】:

    标签: perl operator-keyword


    【解决方案1】:

    使用unless 而不是if 来反转条件意义。

    next unless $line =~ /\.c$/i;
    

    或简单地反转测试:

    next if $line !~ /\.c$/i;
    

    此外,您不需要在正则表达式周围加上括号,并且需要 $ 将其锚定到行尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      • 2014-06-08
      相关资源
      最近更新 更多