使用带限制的正则表达式拆分参数

joe*_*joe 0 perl

$aa = "Main:http://google-test.com:8080/service"

(or)

$aa = "http://google-test.com:8080/service2"
Run Code Online (Sandbox Code Playgroud)

我想把它分成两部分:

Main:

http://google-test.com:8080/service
Run Code Online (Sandbox Code Playgroud)

但它不适用于这种分裂:

split (/\:/,$aa,1);
Run Code Online (Sandbox Code Playgroud)

gpo*_*ojd 5

您需要将限制从1更改为2.

perl -le 'my $aa="Main:http://google-test.com:8080/service"; my @parts = split(/:/, $aa, 2); print scalar @parts;'
Run Code Online (Sandbox Code Playgroud)

来自perldoc -f split:

如果指定了LIMIT且为正,则表示EXPR将被分割为的最大字段数,

看起来您试图将其用作分割的最大次数而不是要返回的部件数量.