温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

perl中split怎么用

发布时间:2022-02-23 10:58:05 来源:亿速云 阅读:364 作者:小新 栏目:开发技术

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

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

split语法

## 语法

split /PATTERN/,EXPR 
split /PATTERN/ 
split

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

split用空格分隔字符串:

#!/usr/bin/perl
$_= "   a   b   c   d   e";    ## 字符串有前导空格,字符‘a’前面有空白
print join " | ", split ;       ## 默认分隔符
print "\n";
print join " ! ", split /\s+/;  ## 正则匹配空格
print "\n";
print join " | ", 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";
print join " ! ", split /-+/;
print "\n";
####输出结果
#  ! a ! b ! c ! d ! e

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

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

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI