首頁 >後端開發 >Python教學 >在Python中,如何分割一個包含多個分隔符號的字串?

在Python中,如何分割一個包含多個分隔符號的字串?

WBOY
WBOY轉載
2023-05-09 19:25:062597瀏覽

要使用多個定界符拆分字串:

使用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']

在Python中,如何分割一個包含多個分隔符號的字串?

確保在方括號之間新增所有分隔符號。

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.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() 方法將字串拆分為具有多個分隔符的單字列表。

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中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除