#!/usr/bin/perl
use strict;
use warnings;
my $s = "sad day
Good day
May be Bad Day
";
$s =~ s/\w+ \w+/_/gm;
print $s;
我试图用 _ 替换单词之间的所有空格,但它不起作用。这有什么问题?
最佳答案
替换用下划线替换整个单词 (\w+
) 然后是空格,然后是另一个单词。
真的没有必要替换(或捕获重要的)这些词
$a=~s/\b +\b/_/gm;
将替换分词符(\b
,单词和非单词之间的零宽度转换)后跟一个或多个空格,然后是另一个分词符,下划线。使用 \b
可确保您不会替换新行之后或之前的空格。
关于regex - 这个替换有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2957630/