要使用多個定界符拆分字串:
使用re.split()
方法,例如re.split(r',|-', my_str)
。
re.split()
方法將拆分所有出現的分隔符號之一的字串。
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
方法接受一個模式和一個字串,並在每次出現該模式時拆分字串。
管道 | 字元是一個或。匹配 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 個分隔符號(逗號、連字符和冒號)拆分字串的範例。
我們可以使用盡可能多的 |
正規表示式中必要的字元。
或者,我們可以使用方括號 []
來指示一組字元。
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']
清單推導負責從清單中刪除空字串。
清單推導用於對每個元素執行某些操作或選擇滿足條件的元素子集。
另一種方法是使用 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.
首先,我們用第二個分隔符號替換每個出現的第一個分隔符,然後我們拆分第二個分隔符。
str.replace
方法傳回字串的副本,其中所有出現的子字串都會被提供的替換項目取代。
此方法採用下列參數:
old 字串中我們要取代的子字串
#new 替換每次出現的old
count 只取代第一個count 出現(可選)
請注意 ,該方法不會變更原始字串。字串在 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()
方法在拆分空白字元的字串之前刪除標點符號。
我們使用空字串進行替換,因為我們要刪除指定的字元。
我們可以根據需要將盡可能多的呼叫連結到 str.replace()
方法。
最後一步是使用 str.split()
方法將字串拆分為單字清單。
str.split()
方法使用定界符將字串拆分為子字串清單。
此方法採用以下2 個參數:
separator 在每次出現分隔符號時將字串拆分為子字串
maxsplit 最多完成maxsplit 分割(可選)
當沒有分隔符號傳遞給str. split()
方法時,它會將輸入字串拆分為一個或多個空白字元。
my_str = 'fql jiyik com' print(my_str.split()) # ????️ ['fql', 'jiyik', 'com']
如果在字串中找不到分隔符,則傳回僅包含 1 個元素的清單。
如果我們需要經常根據多個分隔符號拆分字串,請定義一個可重複使用的函數。
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
函數接受一個字串和一個分隔符號列表,並根據分隔符號拆分字串。
str.join()
方法用於將分隔符號與管道 |
連接起來。分隔器。
# ????️ ,|-|: print('|'.join([',', '-', ':']))
這將建立一個正規表示式模式,我們可以使用該模式根據指定的分隔符號拆分字串。
如果我們需要將一個字串拆分為多個分隔符號的單字列表,我們也可以使用 re.findall()
方法。
使用re.findall()
方法將字串拆分為具有多個分隔符的單字列表。
re.findall()
方法將在每次出現單字時拆分字串,並傳回包含單字的清單。
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
方法將一個模式和一個字串作為參數,並傳回字串列表,其中包含字串中該模式的所有非重疊匹配項。
我们传递给 re.findall()
方法的第一个参数是一个正则表达式。
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 单词字符匹配,并且包括可以作为任何语言的单词一部分的大多数字符。
加号 + 使正则表达式匹配前面字符(Unicode 字符)的 1 次或多次重复。
re.findall()
方法返回一个包含字符串中单词的列表。
以上是在Python中,如何分割一個包含多個分隔符號的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!