如何在Python中使用多個分隔符分割字串?


根據所需靈活性與複雜性的不同,我們可以透過多種方法使用多個分隔符分割字串,例如使用Python的re.split()方法,它是多種字串方法的組合。一些常用的分割字串方法如下。

  • str.replace() 和 str.split()

  • re.split() 方法

  • translate() 和 maketrans() 方法

使用 'str.replace()' 和 'str.split()'

此方法包括將字串中的所有分隔符替換為一個公共分隔符(例如空格或逗號),使用str.replace()將每個分隔符替換為一個公共字元。替換分隔符後,使用str.split()方法分割字串。

示例

在下面的示例中,每個replace()呼叫都將分隔符替換為空格。在所有分隔符都被替換為空格後,str.split()將字串分割成一個列表。

text = "apple,orange;banana|grape:pear"

# Replace each delimiter with a space
text = text.replace(",", " ").replace(";", " ").replace("|", " ").replace(":", " ")

# Split the string on spaces
result = text.split()

print(result)

輸出

['apple', 'orange', 'banana', 'grape', 'pear']

使用 're.split()' 方法

Python 提供了re(正則表示式)模組。具體來說,re.split()函式是一個有效的工具,允許我們使用多個分隔符分割字串。正則表示式是定義搜尋模式的字元序列。

示例

在下面的示例程式碼中,我們使用了re.split()方法在分號 (;)、逗號 (,) 或空格的每次出現處分割字串。|符號在正則表示式中用於表示“或”,因此 |,| 可以解讀為“分號或逗號或空格”。

import re

text = "Python;is,a powerful:language"
words = re.split(';|,| ', text)
print(words)

輸出

['Python', 'is', 'a', 'powerful:language']

使用 'translate()' 和 'maketrans()' 方法

在Python中,對於字元對映和替換,可以使用str類提供的maketrans()translate()這兩種方法。組合使用這兩種方法可以有效地替換多個分隔符。

示例

在下面的示例程式碼中,maketrans()方法返回一個轉換表,該表將分號 (;) 和冒號 (:) 對映到逗號 (,)。translate()方法替換特定字元。之後,我們可以使用str.split(',')將文字分割成單詞並列印提取的單詞。

text = "Python;is,a powerful:language"
# Create a translation table mapping ';' and ':' to ','
table = text.maketrans(";:", ",,")
# Apply the translation table
text = text.translate(table)
# Now we can split on the comma
words = text.split(',')
print(words)

輸出

['Python', 'is', 'a powerful', 'language']

更新於:2024年10月9日

1K+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.