You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl读取XML文档时如何移除^M及换行符?

解决Perl中XML读取内容含^M和换行符的问题

chomp之所以没用,是因为它只移除字符串末尾的系统默认换行序列(比如Unix的\n、Windows的\r\n),但你遇到的^M(也就是ASCII回车符\r)和换行符\n是在字符串中间,所以chomp处理不到。

直接用全局替换或字符转换就能搞定:

方法1:正则全局替换

在获取到$var后,用正则把所有的\r和\n都删掉:

my $var = $line->find('tag1/tag2/tag3/tag4')->string_value;
$var =~ s/[\r\n]//g; # 移除所有回车符和换行符

方法2:用tr操作符(更高效)

tr操作符比正则更适合这种简单的字符删除场景:

my $var = $line->find('tag1/tag2/tag3/tag4')->string_value;
$var =~ tr/\r\n//d; # d表示删除匹配的字符

如果只是想清理字符串末尾的所有空白(包括换行、回车、空格),可以用:

$var =~ s/\s+$//;

内容的提问来源于stack exchange,提问作者Koushik Chandra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 02:18:10