$string = 'a=1;b=2';
use Data::Dumper;
@array = split("; ?", $string);
print Dumper(\@array);
输出:
$VAR1 = [
'a=1',
'b=2'
];
任何人都知道"; ?"
如何在这里工作?它不是正则表达式,但与正则表达式非常相似,所以我不明白。
答案 0 :(得分:3)
我认为这意味着“分号后跟可选空格(只有一个或零)”。
这不是正则表达式,但与正则表达式非常相似,所以我不明白。
要分割的模式参数始终被视为正则表达式(但最好不要使用字符串)。唯一的例外是“单一空间”,这意味着“在空白上拆分”
答案 1 :(得分:1)
split
的第一个参数是正则表达式。所以我宁愿写split /; ?/, $string;
。
当您为第一个参数使用字符串时,它只表示正则表达式可以变化,并且每次运行拆分时都必须重新编译。有关详细信息,请参阅perldoc -f split
。
可以阅读正则表达式; 字符“;”可选地后跟一个空格。有关详细信息,请参阅perlretut和perlreref。
答案 2 :(得分:0)
分号(;;)后跟可选(?)空格(。)。