Perl Regex正则表达式拆分//

Nal*_*n P 2 regex perl split

我浏览了s'flow和其他站点,以在Perl中使用regex进行简单的解决方案。

$str = q(//////);#
Run Code Online (Sandbox Code Playgroud)

假设我有六个斜线或七个斜线,或其他字符,例如q(aaaaa)

我希望他们能像分割['//','//']

我试过了@my_split = split ( /\/\/,$str);但是没用

正则表达式可能吗?

出现此问题的原因是,说我拥有此域名:

$site_name = q(http://www.yahoo.com/blah1/blah2.txt);

我想使用单斜杠拆分以获取“域名”,但我做不到。我试过了

split( '/'{1,1}, $sitename);#没有工作。我期望它在一个斜杠上比两个斜杠分开。

谢谢。

zdi*_*dim 6

这个问题还不清楚。

将字符串分成成对的连续字符

my @pairs = $string =~ /(..)/g;
Run Code Online (Sandbox Code Playgroud)

或通过重复斜杠来分割字符串

my @parts = split /\/\//, $string;
Run Code Online (Sandbox Code Playgroud)

中的分隔符模式/.../是实际的正则表达式,因此我们需要/在其中进行转义。

但是然后您说您想解析URI?

请使用一个模块。例如,有URI

use warnings;
use strict;
use feature 'say';

use URI;

my $string = q(http://www.yahoo.com/blah1/blah2.txt);
my $uri = URI->new($string);

say "Scheme: ", $uri->scheme;
say "Path:   ", $uri->path;
say "Host:   ", $uri->host;
# there's more, see docs    
Run Code Online (Sandbox Code Playgroud)

然后是URI :: Split

use URI::Split qw(uri_split uri_join);

my ($scheme, $auth, $path, $query, $frag) = uri_split($uri);
Run Code Online (Sandbox Code Playgroud)

您可能已经在使用的许多其他模块或框架可以很好地处理URI。