我正在使用以下正则表达式从字符串中删除换行符:
$description =~ s/\r//;
$description =~ s/\n//;
但之后我的意思是:
$description =~ m/\n/
似乎正则表达式没有替换字符串中的所有换行符,对此有何帮助?
答案 0 :(得分:9)
如果您尝试删除单个字符,请使用tr
而不是s///
。
$description =~ tr/\r\n//d;
这将删除\r
或\n
中出现的所有内容,无论其在字符串中各自的位置如何。
答案 1 :(得分:4)
您的替换不是全局替换 - 它们仅替换字符串中模式的第一个实例。要进行全局替换,请在最终斜杠后添加g,如下所示:
$description =~ s/\r//g;
$description =~ s/\n//g;
您还可以使用字符集将两个替换合并为一个替换:
$description =~ s/[\n\r]//g;