【问题标题】:Sed/RegEx: Removing block of code between two strings from PHP fileSed/RegEx:从 PHP 文件中删除两个字符串之间的代码块
【发布时间】:2016-05-26 23:11:14
【问题描述】:

我一直在尝试使用 sed 从 PHP 文件中删除一段代码,它位于以下两个标签之间://istart//iend。标签之间的代码,以及标签本身,应该被删除。这个想法是递归地做,所以我可以为几个文件做。

所以,我有这个正则表达式:/\/\/istart([\s\S]*?)\/\/iend/

你可以在这里查看它的工作情况:https://regex101.com/r/sQ2bA0/2

但是,当我运行 sed 命令时,文件没有任何反应。我已经尝试了好几种方法,总是没有成功。

  • sed -i 's/istart([\s\S]*?)\/\/iend//g' test.php
  • sed -i '1s/\/\/istart([\s\S]*?)\/\/iend//' test.php

我做错了什么?

感谢您的帮助,谢谢!

【问题讨论】:

    标签: regex bash sed


    【解决方案1】:

    你可以使用这个sed:

    sed '/\/\/istart/,/\/\/iend/{s/\/\/istart.*$//p; s/^.*\/\/iend//p; d;}' file
    

    【讨论】:

      【解决方案2】:

      卡洛斯迈亚!

      试试这个:

      "\/\/istart{1,}(.*\n)+.*\/\/iend"
      

      但是你需要在 "//istart" 和 "//iend" 之间有 1 行

      最好的问候!!

      【讨论】:

        猜你喜欢
        • 2015-11-10
        • 1970-01-01
        • 1970-01-01
        • 2016-10-17
        • 1970-01-01
        • 1970-01-01
        • 2018-11-04
        • 1970-01-01
        • 2021-11-16
        相关资源
        最近更新 更多