qui*_*kxi 13 regex string perl split
我想拆分一个包含多个模式的字符串:
恩.
my $string= "10:10:10, 12/1/2011";
my @string = split(/firstpattern/secondpattern/thirdpattern/, $string);
foreach(@string) {
print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
我希望得到一个输出:
10
10
10
12
1
2011
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
ste*_*enl 33
使用正则表达式分隔符中的字符类来匹配一组可能的分隔符.
my $string= "10:10:10, 12/1/2011";
my @string = split /[:,\s\/]+/, $string;
foreach(@string) {
print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
说明
斜线对/.../表示要匹配的正则表达式或模式.
方括号对[...]表示正则表达式的字符类.
Inside是可以匹配的可能字符集:冒号:,逗号,,任何类型的空格字符\s和正斜杠\/(反斜杠作为转义字符).
的+需要,以匹配于1个或多个的前一个字符,这是在此情况下,整个字符类的.如果没有这个,逗号空间将被视为2个单独的分隔符,在结果中为您提供一个额外的空字符串.
错误的工具!
my $string = "10:10:10, 12/1/2011";
my @fields = $string =~ /([0-9]+)/g;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72339 次 |
| 最近记录: |