凹逗工程師

成為一個更好的人

0%

Python 分割字串的幾種方式

前言

在做資料處理時,是不是很常遇到要做字串分割的時候呢?
這幾天本人剛好有遇到要擷取字串,就想研究一下,到底有哪些方法能滿足我的需求!

擷取字串

Slicing 分割

這個方法就像陣列以索引取值一樣,短到字元、長到字段。

  • 字元
    語法:字串[索引]
1
2
some_string = "apple"
print(some_string[1]) # "p"
  • 字串中的子字串(substring)
    語法:字串[起始:結束:間隔]
    參數介紹:索引值是由計算是由 0 開始,所以起始值要 +1 取值,例如起始值 2 代表要由第 3 個字元開始;結束值要取值時自己不能算。例如結束等於 5,所以取到第 5 個值;間隔值不是必填,預設是 1。起始值不填就代表由最前方開始,結束值如果不填就代表算到底。
1
2
3
4
5
fruit = "peach"
print(fruit[2:4]) # "ac"
print(fruit[0:5:2]) # "pah"

print(fruit[::-1]) # 反轉字串 "hcaep"

Split 分割字串為陣列

你有時候會遇到資料是利用 “,” “、” “空格” “-“ 等符號來區分每一筆資料。

這時候就需要把這些字串做處理,讓它變成陣列方便我們使用。

1
2
3
4
5
6
7
8
fruit = "apple,banana,peach"
data_arr = fruit.split(",") # - 使用逗號分割
print(fruit)
print(data_arr) # - [apple, banana, peach]
print(data_arr[0]) # - apple

# - 適用任何符號!
# - 多多研究要處理的資料有什麼特性或規律,在處理上能有較好的效率。

Regexes 正規表達式

又稱作正則表達式。Python 支援的介面存放在 re 的模組裡,所以要使用記得要引用(import re)

正規表達式是很適合用來匹配字串極好用的工具,有獨立的語法,並能透過特定的語句規則(Pattern),達到搜尋、匹配、替代等等的需求。

  • reg.split()
    我們可以編譯一個正則表達式,用它來分割字串,和 python.split 一樣,返回一個包含子字串的列表。

    1
    2
    3
    4
    5
    6
    import re
    fruit = "apple banana peach"
    regex = re.complie('\s+') # - \s 是一個特殊字元,包含所有的空白字元(空白、TAB、換行符號),而+則代表一個或多個空格。
    result = regex.split(fruit)

    print(result)

    推薦一個網站,https://regex101.com/能即時將你輸入的字串比對你的正規表達式語法。

歡迎關注我的其它發布渠道