当前位置: 首页 > 知识库问答 >
问题:

Perl单行程序中的跨行regex匹配

夹谷琨
2023-03-14

我的问题听起来很琐碎,但我谷歌了很多页面还是找不到答案。

我在窗户上。我有一个文本文件。如果我用notepad++打开它,它看起来像这样

我想尝试几件事

如果我们想缩进!行如果它的前一行以“function”开头,一个天真的想法会是(实际上它的工作是notepad++)

perl -i.bak -pe "s/^(function.*\r\n)!/$1\t!/g" a.txt

但没有奏效。如何正确地去做?

共有1个答案

龙默
2023-03-14
  1. perl-i.bak-pe“s/\n//”a.txt

即。只需将\r\n更改为\n,因为\r\n在Windows上会自动转换为\n,正如Ikegami所解释的那样。

这里的要点是,您需要将整个文件内容读入单个字符串,以便进行跨行匹配。-0777参数指示Perl这样做(或者,您可以从Perl脚本中将$/设置为空字符串)。

 类似资料:
  • 麻烦请问用golang的正则怎么把p标签的文本内容取出来,谢谢 补充,上边代码只是html一部分,

  • 我正试图将这些值以如下方式放入数组: 我不太清楚如何使用regex处理多行文本。regex是正确的方法吗?

  • 想要编写 Excel 公式,该公式将根据行的匹配项对值求和。要匹配的单元格可以多次出现,并且基于映射图例,它们应返回值的总和。 在黄色单元格中,我试图根据G3: G8中名称的匹配来计算B9: B21范围内的值的总和,根据映射图例到Item1,然后是Item2和Item 3。此外,我想考虑在日期1、日期2和日期3之间进行的总和。下面的SumProduct公式仅适用于单个日期的sum数组,而不适用于日

  • 本文向大家介绍Perl中的单行注释和多行注释语法,包括了Perl中的单行注释和多行注释语法的使用技巧和注意事项,需要的朋友参考一下 同其他大多数编程语言一样,Perl中的单行注释也是#开头,例如: 但多行注释,不同的语言有不同的注释方式,比如说: Java,C/C++: Python: Ruby: Shell: Perl: 多行注释为: 说明:第一个等号必须紧跟一个字符! 比如说:

  • 我有一个字符串,我正试图根据几个regex模式验证它,我希望由于模式匹配在3.10中可用,我可以使用它来代替创建if-else块。 考虑一个字符串'validateString',其可能的值1021102,1.25.32string021。 我尝试的代码如下所示。 对于正则表达式1、2和3,我尝试了字符串正则表达式模式,还重新设置了。编译对象,但它似乎不起作用。 我一直试图在互联网上找到这方面的例

  • 本文向大家介绍Perl语言匹配模式的打印行(PCRE grep),包括了Perl语言匹配模式的打印行(PCRE grep)的使用技巧和注意事项,需要的朋友参考一下 示例 不区分大小写: