首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Perl中用一个空格替换多个空格?

如何在Perl中用一个空格替换多个空格?
EN

Stack Overflow用户
提问于 2010-10-03 02:07:03
回答 3查看 38.7K关注 0票数 16

为什么这不起作用?

代码语言:javascript
运行
复制
$data = "What    is the STATUS of your mind right now?";

$data =~ tr/ +/ /;

print $data;
EN

Stack Overflow用户

回答已采纳

发布于 2010-10-03 02:09:59

请改用$data =~ s/ +/ /;

解释:

trtranslation运算符。需要注意的重要一点是,正则表达式修饰符不适用于翻译语句(除了-,它仍然指示一个范围)。所以当你使用

你说的是“获取字符的每一个实例tr/ +/ / +,并将它们转换成一个空格”。换句话说,tr将空格和+视为单个字符,而不是正则表达式。

演示:

代码语言:javascript
运行
复制
$data = "What    is the STA++TUS of your mind right now?";

$data =~ tr/ +/ /;

print $data; #Prints "What    is the STA  TUS of your mind right now?"

使用s实现了您想要的功能,即“匹配任意数量的连续空格(至少一个实例),并将其替换为一个空格”。您可能还想使用类似于

如果您希望替换发生在多个位置,则为s/ +/ /g; (g表示全局应用)。

票数 33
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3846931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档