小编给大家分享一下perl中split怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

split语法perl——当split函数用空格做分隔符时## 语法split /PATTERN/,EXPRsplit /PATTERN/splitsplit用来分隔字符串EXPR,在列表上下文中返回分隔后的列表,在标量上下文中返回列表长度。

split语法

## 语法

split/PATTERN/,EXPRsplit/PATTERN/split

split用来分隔字符串EXPR,在列表上下文中返回分隔后的列表,在标量上下文中返回列表长度。

split用空格分隔字符串:

#!/usr/bin/perl$_="abcde";##字符串有前导空格,字符‘a’前面有空白printjoin"|",split;##默认分隔符print"\n";printjoin"!",split/\s+/;##正则匹配空格print"\n";printjoin"|",split'';##直接量空格print"\n";#####输出结果##a|b|c|d|e##!a!b!c!d!e##a|b|c|d|e

默认分隔符split和直接量分隔符split ' '都把字符串的前导空格去掉了,而正则匹配split /\s+/为前导空格保留了位置,用一个空字符''代替。

以前认为split /\s+/和split ' '是一样的,现在看来是不一样的。

为什么会这样呢!

用-代替空格:

#!/usr/bin/perl$_="---a--b----c-d-e";printjoin"!",split/-+/;print"\n";####输出结果#!a!b!c!d!e

可以理解为perl字符串是由一个空字符''开头,这样就可以理解上一节中,split /\s+/分隔后的结果。

而split ' '是split的特殊情况,该格式是模拟awk的默认行为,所以在分割行为开始之前,会把字符串中的前导空格全部删除,然后再使用split /\s+/处理,这就是为什么两者结果不同的原因。

除了split ' '这种特殊情况外,如果提供其他字符串,perl也会解释为正则表达式去执行。

看完了这篇文章,相信你对“perl中split怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!