小編給大家分享一下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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。