中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么拆分具有多個分隔符的字符串

發布時間:2023-04-28 15:14:08 來源:億速云 閱讀:133 作者:iii 欄目:開發技術

今天小編給大家分享一下Python中怎么拆分具有多個分隔符的字符串的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

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

使用 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中怎么拆分具有多個分隔符的字符串”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新乡市| 徐汇区| 万州区| 晴隆县| 陇川县| 增城市| 龙游县| 子洲县| 平塘县| 金华市| 米泉市| 林芝县| 慈溪市| 山丹县| 永新县| 桃园市| 永嘉县| 宜良县| 静宁县| 运城市| 慈利县| 凤阳县| 武城县| 沈丘县| 泰安市| 资兴市| 鹤庆县| 独山县| 平乐县| 神农架林区| 咸丰县| 辰溪县| 句容市| 平果县| 武冈市| 定远县| 黄骅市| 林芝县| 寻乌县| 霍城县| 永新县|