Perl:将 .* 替换为 §
Perl: substitute .* to §
我必须用 Perl (v5.24.1@Win10) 中的 $fn = '1./(4.*z.^2-1)' 等表达式替换多个子字符串:
$fn =~ s/.\//_/g;
$fn =~ s/.\*/§/g;
$fn =~ s/.\^/^/g;
但 § 不起作用;我在表达式结果 (1_(4┬ºz^2-1)) 中得到一个┬º。我需要这个用于文件夹和文件名,它在 Matlab@Win10 中使用 fn = strrep(fn, '.*', '§') 运行良好。
如何得到Perl替换结果中的§?
对我有用:
#! /usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
use utf8;
use open IO => ':encoding(UTF-8)', ':std';
my $fn = '1./(4.*z.^2-1)';
s/.\//_/g,
s/.\*/§/g,
s/.\^/^/g
for $fn;
say $fn;
输出:
1_(4§z^2-1)
你可以看到use utf8
,它告诉Perl 源代码是UTF-8。确保将源文件保存为 UTF-8,然后。
use open
设置标准输入和输出的UTF-8编码。确保您打印的终端也配置为使用 UTF-8。
我必须用 Perl (v5.24.1@Win10) 中的 $fn = '1./(4.*z.^2-1)' 等表达式替换多个子字符串:
$fn =~ s/.\//_/g;
$fn =~ s/.\*/§/g;
$fn =~ s/.\^/^/g;
但 § 不起作用;我在表达式结果 (1_(4┬ºz^2-1)) 中得到一个┬º。我需要这个用于文件夹和文件名,它在 Matlab@Win10 中使用 fn = strrep(fn, '.*', '§') 运行良好。
如何得到Perl替换结果中的§?
对我有用:
#! /usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
use utf8;
use open IO => ':encoding(UTF-8)', ':std';
my $fn = '1./(4.*z.^2-1)';
s/.\//_/g,
s/.\*/§/g,
s/.\^/^/g
for $fn;
say $fn;
输出:
1_(4§z^2-1)
你可以看到use utf8
,它告诉Perl 源代码是UTF-8。确保将源文件保存为 UTF-8,然后。
use open
设置标准输入和输出的UTF-8编码。确保您打印的终端也配置为使用 UTF-8。