![]() |
1
6
它不起作用的原因是
更好的主意:
|
![]() |
2
2
鉴于:
更简单的是,你可以使用
在
|
![]() |
3
2
您正在执行以下程序:
因为一次只读取一行,而且一行是一个字符序列,不是以换行符结尾的换行符,所以模式永远不会匹配多个换行符。 简单的解决方法是告诉Perl将整个文件视为一行。另外,您不希望替换每个换行符,而只替换那些在两个或更多换行符序列中找到的换行符,您希望用两个换行符替换序列。
第二次和第三次替换确保文件的开头和结尾没有空行。 虽然将整个文件读入内存很容易,但这是不必要的。还可以通过维护一个标志来实现所需的输出,该标志指示前一行是否为空。
此解决方案还将删除文件开头和结尾的空行。 |
![]() |
DotFX · RegEx捕获关键字前但括号后的所有内容 4 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 4 月前 |
![]() |
iato · 确保正则表达式不从命名材料中的数字中提取 5 月前 |
![]() |
vr8ce · 非成对标记中特定字符的正则表达式 5 月前 |
![]() |
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 5 月前 |
![]() |
Carsten · 使用最近的搜索模式更改文本块 5 月前 |