的次数我有一个像提取字符串之前和之后的关键字符串
$script = "mycommand param1=arnab user=user1 mapping=arn1:schema1,arn2:schema2"
我想在两个变量后,提取mapping=
之前的一切,也都一个字符串。在这条线
$script_piece1 = $script =~ m/(.*)mapping=/;
但是我得到语法错误:
要提取的一切mapping=
之前我试过了。
如何正确执行此操作?
的次数我有一个像提取字符串之前和之后的关键字符串
$script = "mycommand param1=arnab user=user1 mapping=arn1:schema1,arn2:schema2"
我想在两个变量后,提取mapping=
之前的一切,也都一个字符串。在这条线
$script_piece1 = $script =~ m/(.*)mapping=/;
但是我得到语法错误:
要提取的一切mapping=
之前我试过了。
如何正确执行此操作?
你的说法是完全有效的,但它会根据$script
是否包含字符串mapping=
你需要把正则表达式测试中列表环境设置$script_piece1
到真正或假值得到它返回的任何的内容捕获的模式,你也可以像这样一次抓住两个部分
my ($piece1, $piece2) = $script =~ /(.*?)mapping=(.*)/;
但它的整洁为split
,这样
my ($piece1, $piece2) = split /mapping=/, $script, 2;
这行没有语法错误 – Borodin
@Arnab我想你从行号1得到语法错误,因为你错过了分号。 – mkHun
噢,是的,语法错误是在更早的行中,因为我有一个额外的“)”。但是,$ script_piece1会在您的答案中显示为null。无论如何,我正在尝试你的解决方案,并会尽快回复到这里 – Arnab