如何使用 Python 正則表示式根據多個分隔符拆分字串?


包含字元集合的類被稱為正則表示式類。我們將使用其中一個類 d,它匹配任何十進位制數字。學習如何拆分資料可能很有價值。資料以各種型別和大小到達,而且它有時並不像我們希望的那樣乾淨。您經常希望根據多個分隔符拆分字串,以便更容易處理。內建的 正則表示式 庫 re 是拆分字串的最簡單方法。

該庫具有 a.split() 函式,其工作方式類似於上面的示例。這種方法之所以引人注目,是因為它允許您使用正則表示式來拆分字串。

使用語法

split() − 將字串拆分為一個列表,其中每個單詞都是一個列表項 −

string.split(separator, maxsplit)

separator − 可選。指定拆分字串時要使用的分隔符。預設情況下,任何空格都是分隔符。

maxsplit − 可選。指定要執行多少次拆分。預設值為 -1,表示“所有出現”。

注意 − 如果在模式中使用了捕獲括號,則模式中所有組的文字也將作為結果列表的一部分返回。

返回值 − 它根據正則表示式模式劃分目標文字,並返回匹配項列表。

演算法

  • 要使用多個分隔符拆分字串
  • 匯入 re 模組。
  • 使用 re.split() 方法,例如 re.split(r',|-', my_str_2)。
  • re.split() 方法將在分隔符之一的所有出現位置拆分字串。

示例 1

import re #split string with 2 delimiters my_str = 'one,two-three,four' my_list = re.split(r',|-', my_str) # split on comma or hyphen print(my_list)

輸出

['one', 'two', 'three', 'four']

程式碼說明

re.split 函式給定一個模式和一個字串,它在模式的每次出現時拆分字串。

管道符號 | 表示 OR。在 A 和 B 中選擇。在第一個示例中,逗號和連字元用作字串分隔符。第二個示例使用逗號、連字元和冒號作為分隔符來拆分字串。在正則表示式中,您可以隨意使用任意數量的 | 字元。或者,您可以使用方括號 [] 表示一組字元。

示例 2

#split string with 3 delimiters import re my_str_2 = 'one,two-three:four' my_list_2 = re.split(r',|-|:', my_str_2) #comma, hyphen or colon print(my_list_2)

輸出

['one', 'two', 'three', 'four']

程式碼說明

re.split 函式給定一個模式和一個字串,它在模式的每次出現時拆分字串。

管道符號 | 表示 OR。在 A 和 B 中選擇。第一個示例使用逗號和連字元作為字串分隔符。第二個示例使用逗號、連字元和冒號作為分隔符來拆分字串。在正則表示式中,您可以隨意使用任意數量的 | 字元。或者,您可以使用方括號 [] 表示一組字元。

另一種方法是使用 str.replace() 方法

Python 語言中的內建方法 replace() 返回字串的副本,其中一個子字串的每個例項都已替換為另一個子字串。名為字串 split() 的內建 Python 方法將字串拆分為列表。

要使用多個分隔符拆分字串 −

  • 使用 str.replace() 方法將第一個分隔符替換為第二個分隔符。
  • 使用 str.split() 方法根據第二個分隔符拆分字串。

示例 1

#importing re import re #storing the string in my_str_2 my_str_2 = 'one_two!three_four' my_list = my_str_2.replace('_', '!').split('!') #printing my_list by replacing it with multiple delimiters print(my_list)

輸出

['one', 'two', 'three', 'four']

程式碼說明

從正則表示式模組匯入 re。將字串儲存在名為 my_str_2 的變數中。使用 replace 方法從第一個分隔符到第二個分隔符替換字串。使用 split 方法根據第二個分隔符拆分字串。列印 my_list 以獲得所需的結果。

首先,我們將第一個分隔符的每次出現都替換為第二個分隔符,然後我們根據第二個分隔符進行拆分。str.replace 方法返回字串的副本,其中所有出現的子字串都替換為提供的替換。

示例 2

此外,您可以選擇完全避免使用 re 模組。如果您覺得更舒服,也可以在沒有模組的情況下完成此操作,因為該模組可能有點令人生畏。

以下示例演示瞭如何透過首先更改值來拆分具有多個分隔符的 Python 字串。我們將使用我們新建立的字串來替換所有現有的分隔符,使其成為單個統一的分隔符。讓我們看看這個 −

#importing re import re #storing the string in my_str_2 sample_string = 'Hey! thanks for visiting, Tutorialspoint!' new_string = sample_string.replace('!', ',').replace(';', ',') split_string = new_string.split(',') #printing my_list by replacing it with multiple delimiters print(split_string)

輸出

['Hey', ' thanks for visiting', ' Tutorialspoint', '']

結論

內建的正則表示式庫 re 是拆分字串的最簡單方法。該庫具有 a.split() 函式,其工作方式類似於上面的示例。這種方法之所以引人注目,是因為它允許您使用正則表示式來拆分字串。本文教您如何使用多個分隔符拆分 Python 字串。為此,使用了內建的 .split() 程式和內建正則表示式 re 的 .split() 函式。

更新於:2023-11-02

24K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.