【问题标题】:How to substitute dates in Perl?如何在 Perl 中替换日期?
【发布时间】:2013-09-05 17:22:04
【问题描述】:
perl -pi.back -e 's/2013/07/31-05:54:14/2014/07/31-00:00:00/g;' /tmp/ranjan/replace.SEL

我正在使用上面的一个班轮将日期从2013/07/31-05:54:14 替换为2014/07/31-00:00:00。但我无法做到。我只能找到字符串的替换,而不是上述格式的数字。请帮帮我。

【问题讨论】:

    标签: perl regex


    【解决方案1】:

    使用alternative delimiter

    s{find}{replace}g;
    

    s#find#replace#g;
    

    否则你将不得不转义所有/

    【讨论】:

      【解决方案2】:

      Perl 认为日期中的正斜杠实际上是替换语句 s///g 的一部分,因此您可以转义日期中的斜杠或使用不同的分隔符进行替换

      perl -pi.back -e 's/2013\/07\/31-05:54:14/2014\/07\/31-00:00:00/g;'
      

      或更具可读性:

      perl -pi.back -e 's#2013/07/31-05:54:14#2014/07/31-00:00:00#g;' 
      

      【讨论】:

        【解决方案3】:

        你必须改变你的分隔符,否则你已经正确地转义了你的正则表达式字符串。

        dilmeter 可以是任何不可打印的东西,我喜欢用!。

        像这样:

        s!2013/07/31-05:54:14!2014/07/31-00:00:00!g;
        

        【讨论】:

          猜你喜欢
          • 2011-09-30
          • 2016-08-03
          • 2013-02-18
          • 2012-06-22
          • 2020-03-28
          • 2023-03-28
          • 1970-01-01
          • 2010-09-29
          相关资源
          最近更新 更多