我有以下正则表达式尝试减少换行符组:
s/(\n|\r\n|\n\r)(\n|\r\n|\n\r)(\n|\r\n|\n\r)+/\n\n/gmi;
最初是:
s/\n\n(\n)+/\n\n/gmi
我希望减少连续最多连续两行的换行数(只是尝试对我为内部wiki导入的一些文件进行一些清理)。 数据中有几行CRLF(Windows数据文件)。 然而,它似乎没有用。
我做错了什么?这是一个出错的例子:
以:
开始added missing options for Menu and toolbar positioning</p> </div> </body> </html>
我正在剥离HTML代码,因此它最终会像这样:
added missing options for Menu and toolbar positioning
然后我应用正则表达式,它出现为:
added missing options for Menu and toolbar positioning
答案 0 :(得分:6)
还尝试匹配这些新行周围留下的任何其他空格:
s/(\r?\n[ \t]*){2,}/\n\n/g;
答案 1 :(得分:1)
由于您似乎无法应用给出的答案,或许您可以向我们展示您的一些实际数据,
use Data::Dumper;
$Data::Dumper::Useqq = 1;
print Dumper $slurped_file;
您可能还想尝试删除任何\ r \ n字符,然后删除原始换行符。
答案 2 :(得分:0)
您是否尝试过匹配这样的多个群组?
(\r\n){2,}/\n\n