前言
在做資料處理時,是不是很常遇到要做字串分割的時候呢?
這幾天本人剛好有遇到要擷取字串,就想研究一下,到底有哪些方法能滿足我的需求!
擷取字串
Slicing 分割
這個方法就像陣列以索引取值一樣,短到字元、長到字段。
- 字元
語法:字串[索引]
1 | some_string = "apple" |
- 字串中的子字串(substring)
語法:字串[起始:結束:間隔]
參數介紹:索引值是由計算是由 0 開始,所以起始值要 +1 取值,例如起始值 2 代表要由第 3 個字元開始;結束值要取值時自己不能算。例如結束等於 5,所以取到第 5 個值;間隔值不是必填,預設是 1。起始值不填就代表由最前方開始,結束值如果不填就代表算到底。
1 | fruit = "peach" |
Split 分割字串為陣列
你有時候會遇到資料是利用 “,” “、” “空格” “-“ 等符號來區分每一筆資料。
這時候就需要把這些字串做處理,讓它變成陣列方便我們使用。
1 | fruit = "apple,banana,peach" |
Regexes 正規表達式
又稱作正則表達式。Python 支援的介面存放在 re 的模組裡,所以要使用記得要引用(import re)
正規表達式是很適合用來匹配字串極好用的工具,有獨立的語法,並能透過特定的語句規則(Pattern),達到搜尋、匹配、替代等等的需求。
reg.split()
我們可以編譯一個正則表達式,用它來分割字串,和 python.split 一樣,返回一個包含子字串的列表。1
2
3
4
5
6import re
fruit = "apple banana peach"
regex = re.complie('\s+') # - \s 是一個特殊字元,包含所有的空白字元(空白、TAB、換行符號),而+則代表一個或多個空格。
result = regex.split(fruit)
print(result)推薦一個網站,https://regex101.com/能即時將你輸入的字串比對你的正規表達式語法。