2

我希望能够用空格替换单个字符串(不是整个文件,只是程序中的一个字符串)中的所有行返回(\n),并用分号替换同一字符串中的所有逗号。

这是我的代码:

    $str =~ s/"\n"/" "/g;
    $str =~ s/","/";"/g;
4

3 回答 3

10

这会做到的。您不需要在它们周围使用引号。

$str =~ s/\n/ /g;
$str =~ s/,/;/g;

替换运算符 ( s///)的修饰符选项说明

e       Forces Perl to evaluate the replacement pattern as an expression. 
g       Replaces all occurrences of the pattern in the string. 
i       Ignores the case of characters in the string. 
m       Treats the string as multiple lines. 
o       Compiles the pattern only once. 
s       Treats the string as a single line. 
x       Lets you use extended regular expressions. 
于 2013-08-17T04:38:40.017 回答
3

您不需要在搜索和替换中引用,只需在您的第一个示例中表示一个空格(或者您也可以这样做/ /)。

$str =~ s/\n/" "/g;
$str =~ s/,/;/g;
于 2013-08-17T03:51:17.093 回答
3

我会使用tr

$str =~ tr/\n,/ ;/;
于 2013-08-17T11:23:56.300 回答