小编给大家分享一下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怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。