Python - 字尾雜散字元字串分割


Python 是一種流行的程式語言,以其易用性和可讀性而聞名。在處理文字時,一個常見的任務是根據特定分隔符分割字串。然而,當分隔符出現在某些單詞之後時,就會出現一個問題,導致出現雜散字元。在本文中,我們將探討三種不同的方法來分割 Python 中帶有雜散字元的字串。我們將使用正則表示式、帶臨時分隔符的字串操作以及迭代分割方法來實現所需的結果。這些方法提供了處理雜散字元並確保 Python 中字串分割準確性的解決方案。

Python-字尾雜散字元字串分割

簡單易讀 − Python 的語法旨在簡潔明瞭,使其更容易理解和編寫程式碼。這種簡潔性有助於以直接的方式實現字串分割方法,包括處理雜散字元。

豐富的內建功能 − Python 提供了豐富的內建函式和方法,可用於字串操作。諸如 split()、replace() 和 join() 等函式立即可用,並且可以有效地用於處理雜散字元並實現所需的字串分割結果。

正則表示式支援 − Python 的 re 模組允許執行高效的正則表示式操作。正則表示式提供了一種靈活且有效的方式來匹配和操作字串中的模式。通常,在處理複雜的雜散字元場景時特別有用。

靈活性和自定義 − Python 的字串操作功能可以輕鬆定製以滿足特定需求。無論是使用臨時分隔符、遍歷字串還是使用正則表示式,Python 都允許根據手頭問題的具體需求進行靈活的使用和定製。

方法 1:正則表示式 (Regex)

演算法

正則表示式是模式匹配和字串操作的強大工具。我們將使用 Python 中的 re 模組根據特定模式分割字串。在我們的例子中,模式將匹配不後跟空格的句點。

  • 步驟 1 − 匯入 re 模組。

  • 步驟 2 − 定義正則表示式模式。

  • 步驟 3 − 使用 re.split() 函式根據模式分割字串。

  • 步驟 4 − 獲取所需的分割字串。

示例

import re

str_with_stray = "Amazing experience"
pattern = r'\.(?!\s)'

split_str = re.split(pattern, str_with_stray)
print(split_str)

輸出

['Amazing experience']

方法 2:使用臨時分隔符進行字串操作

演算法

在這種方法中,我們將用不太可能出現在原始字串中的臨時分隔符替換雜散句點。然後,我們可以使用臨時分隔符分割字串,並將句點恢復到其原始位置。

  • 步驟 1 − 將雜散句點替換為臨時分隔符。

  • 步驟 2 − 使用 split() 方法並使用臨時分隔符分割修改後的字串。

  • 步驟 3 − 在 split_str 中呈現的每個單詞中恢復原始句點。

  • 步驟 4 − 列印最終結果。

示例

str_with_stray = "John is excellent in study"
temp_delimiter = '###'

modified_str = str_with_stray.replace('. ', temp_delimiter)
split_str = modified_str.split(temp_delimiter)
split_str = [word.replace(temp_delimiter, '. ') for word in split_str]

print(split_str)

輸出

['John is excellent in study']

方法 3:迭代分割

演算法

  • 步驟 1 − 初始化一個空列表以儲存分割的單詞。

  • 步驟 2 − 按句點分割字串。

  • 步驟 3 − 遍歷分割的單詞,並檢查每個單詞是否以雜散字元結尾。

  • 步驟 4 − 使用 while 迴圈並檢查某些條件,例如單詞以雜散字元結尾,並將它與後續單詞合併,直到找不到雜散字元。

  • 步驟 5 − 將合併後的單詞追加到分割單詞列表中。

  • 步驟 6 − 獲取指定的分割字串。

示例

str_with_stray = "Hello.world. How.are.you? I'm.fine."

split_words = []
words = str_with_stray.split('.')
i = 0

while i < len(words):
   word = words[i].strip()
    
   while i < len(words) - 1 and word[-1] == '':
      i += 1
      word += '.' + words[i].strip()
    
   split_words.append(word)
   i += 1

print(split_words)

輸出

['Hello', 'world', 'How', 'are', "you? I'm", 'fine', '']

通過了解這些方法,您現在可以處理雜散字元影響 Python 中所需字串分割結果的情況。

結論

總之,我們探討了三種不同的方法來解決 Python 中分割帶有雜散字元的字串的挑戰。正則表示式為模式匹配和字串操作提供了有效且靈活的解決方案。使用臨時分隔符進行字串操作使我們能夠臨時替換雜散字元,分割字串,然後恢復原始字元。最後,迭代分割技術有助於將帶有雜散字元的單詞合併,以獲取指定的分割字串。

更新於: 2023-08-29

82 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.