千家信息网

perl中split怎么用

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,小编给大家分享一下perl中split怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!split语法perl--当split函数用空格做分隔符时 ## 语法 split /PAT
千家信息网最后更新 2025年01月20日perl中split怎么用

小编给大家分享一下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怎么用"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

0