Python中拆分具有多個分隔符的字符串方法實例
要使用多個定界符拆分字符串:
使用 re.split() 方法,例如 re.split(r',|-', my_str)。
re.split() 方法將拆分所有出現(xiàn)的分隔符之一的字符串。
import re # ??? 用 2 個分隔符拆分字符串 my_str = 'fql,jiyik-dot,com' my_list = re.split(r',|-', my_str) # ??? 以逗號或連字符分隔 print(my_list) # ??? ['fql', 'jiyik', 'dot', 'com']
re.split 方法接受一個模式和一個字符串,并在每次出現(xiàn)該模式時拆分字符串。
管道 | 字符是一個或。 匹配 A 或 B。
該示例使用 2 個分隔符(逗號和連字符)拆分字符串。
# ??? 用 3 個分隔符拆分字符串 my_str = 'fql,jiyik-dot:com' my_list = re.split(r',|-|:', my_str) # ??? comma, hyphen or colon print(my_list) # ??? ['fql', 'jiyik', 'dot', 'com']
下面是一個使用 3 個分隔符(逗號、連字符和冒號)拆分字符串的示例。
我們可以使用盡可能多的 | 正則表達式中必要的字符。
使用方括號 [] 根據(jù)多個定界符拆分字符串
或者,我們可以使用方括號 [] 來指示一組字符。
import re my_str = 'fql,jiyik-dot,com' my_list = re.split(r'[,-]', my_str) print(my_list) # ??? ['fql', 'jiyik', 'dot', 'com']

確保在方括號之間添加所有分隔符。
import re # ??? 用 3 個分隔符拆分字符串 my_str = 'fql,jiyik-dot:com' my_list = re.split(r'[,-:]', my_str) # 以逗號、連字符、冒號分割 print(my_list) # ??? ['fql', 'jiyik', 'dot', 'com']
如果字符串以其中一個定界符開頭或結尾,我們可能會在輸出列表中得到空字符串值。
處理前導或尾隨定界符
我們可以使用列表理解從列表中刪除任何空字符串。
import re
# ??? 用 3 個分隔符拆分字符串
my_str = ',fql,jiyik-dot:com:'
my_list = [
item for item in re.split(r'[,-:]', my_str)
if item
]
print(my_list) # ??? ['fql', 'jiyik', 'dot', 'com']
列表推導負責從列表中刪除空字符串。
列表推導用于對每個元素執(zhí)行某些操作或選擇滿足條件的元素子集。
另一種方法是使用 str.replace() 方法。
使用 str.replace() 拆分具有多個定界符的字符串
要使用多個定界符拆分字符串:
- 使用
str.replace()方法將第一個分隔符替換為第二個分隔符。 - 使用
str.split()方法按第二個分隔符拆分字符串。
my_str = 'fql_jiyik!dot_com'
my_list = my_str.replace('_', '!').split('!')
print(my_list) # ??? ['fql', 'jiyik', 'dot', 'com']這種方法僅在您想要拆分的分隔符很少時才方便,例如 2.
首先,我們用第二個分隔符替換每個出現(xiàn)的第一個分隔符,然后我們拆分第二個分隔符。
str.replace 方法返回字符串的副本,其中所有出現(xiàn)的子字符串都被提供的替換項替換。
該方法采用以下參數(shù):
- old 字符串中我們要替換的子串
- new 替換每次出現(xiàn)的 old
- count 僅替換第一個 count 出現(xiàn)(可選)
請注意 ,該方法不會更改原始字符串。 字符串在 Python 中是不可變的。
這是另一個例子。
my_str = 'fql jiyik, dot # com. abc'
my_list = my_str.replace(
',', '').replace(
'#', '').replace('.', '').split()
print(my_list) # ??? ['fql', 'jiyik', 'dot', 'com', 'abc']
我們使用 str.replace() 方法在拆分空白字符的字符串之前刪除標點符號。
我們使用空字符串進行替換,因為我們要刪除指定的字符。
我們可以根據(jù)需要將盡可能多的調用鏈接到 str.replace() 方法。
最后一步是使用 str.split() 方法將字符串拆分為單詞列表。
str.split() 方法使用定界符將字符串拆分為子字符串列表。
該方法采用以下 2 個參數(shù):
- separator 在每次出現(xiàn)分隔符時將字符串拆分為子字符串
- maxsplit 最多完成 maxsplit 拆分(可選)
當沒有分隔符傳遞給 str.split() 方法時,它會將輸入字符串拆分為一個或多個空白字符。
my_str = 'fql jiyik com' print(my_str.split()) # ??? ['fql', 'jiyik', 'com']
如果在字符串中找不到分隔符,則返回僅包含 1 個元素的列表。
使用可重用函數(shù)根據(jù)多個定界符拆分字符串
如果我們需要經常根據(jù)多個分隔符拆分字符串,請定義一個可重用的函數(shù)。
import re
def split_multiple(string, delimiters):
pattern = '|'.join(map(re.escape, delimiters))
return re.split(pattern, string)
my_str = 'fql,jiyik-dot:com'
print(split_multiple(my_str, [',', '-', ':']))
split_multiple 函數(shù)接受一個字符串和一個分隔符列表,并根據(jù)分隔符拆分字符串。
str.join() 方法用于將分隔符與管道 | 連接起來。 分隔器。
# ??? ,|-|:
print('|'.join([',', '-', ':']))
這將創(chuàng)建一個正則表達式模式,我們可以使用該模式根據(jù)指定的分隔符拆分字符串。
如果我們需要將一個字符串拆分為多個分隔符的單詞列表,我們還可以使用 re.findall() 方法。
使用 re.findall() 將字符串拆分為單詞列表
使用 re.findall() 方法將字符串拆分為具有多個分隔符的單詞列表。
re.findall() 方法將在每次出現(xiàn)單詞時拆分字符串,并返回包含單詞的列表。
import re # ? 將字符串拆分為具有多個分隔符的單詞列表 my_str = 'fql jiyik, dot # com. abc' my_list = re.findall(r'[\w]+', my_str) print(my_list) # ??? ['fql', 'jiyik', 'dot', 'com', 'abc']
re.findall 方法將一個模式和一個字符串作為參數(shù),并返回一個字符串列表,其中包含字符串中該模式的所有非重疊匹配項。
我們傳遞給 re.findall() 方法的第一個參數(shù)是一個正則表達式。
import re my_str = 'fql jiyik, dot # com. abc' my_list = re.findall(r'[\w]+', my_str) print(my_list) # ??? ['fql', 'jiyik', 'dot', 'com', 'abc']
方括號 [] 用于表示一組字符。
\w字符與 Unicode 單詞字符匹配,并且包括可以作為任何語言的單詞一部分的大多數(shù)字符。
加號 + 使正則表達式匹配前面字符(Unicode 字符)的 1 次或多次重復。
re.findall() 方法返回一個包含字符串中單詞的列表。
如果大家想了解關于正則表達式的知識,可以參考 正則表達式教程。
該頁面包含所有特殊字符的列表以及許多有用的示例。
總結
到此這篇關于Python中拆分具有多個分隔符的字符串的文章就介紹到這了,更多相關Python拆分多分隔符的字符串內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
matplotlib實現(xiàn)數(shù)據(jù)實時刷新的示例代碼
這篇文章主要介紹了matplotlib實現(xiàn)數(shù)據(jù)實時刷新的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
Python tabulate結合loguru打印出美觀方便的日志記錄
在開發(fā)過程中經常碰到在本地環(huán)境無法完成聯(lián)調測試的情況,必須到統(tǒng)一的聯(lián)機環(huán)境對接其他系統(tǒng)測試。往往是出現(xiàn)了BUG難以查找數(shù)據(jù)記錄及時定位到錯誤出現(xiàn)的位置。本文將利用tabulate結合loguru實現(xiàn)打印出美觀方便的日志記錄,需要的可以參考一下2022-10-10
關于python 讀取csv最快的Datatable的用法,你都學會了嗎
大家都知道Datatable與眾不同就是快,還有一點大家需要注意使用Datatable庫需要python3.6及以上版本,接下來通過本文給大家介紹了python 讀取csv最快的Datatable的用法,需要的朋友可以參考下2021-10-10

