第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python從括號之間提取子字符串

Python從括號之間提取子字符串

繁花不似錦 2022-06-07 17:03:16
我有一個字符串,其格式如下:"Name Surname (ID), Name2 Surname2 (ID2)"ID 以字母開頭,后跟幾個數(shù)字。我們可以在該字符串中包含不同數(shù)量的人(我的意思是只能有一個人,如提供的示例中的 2 人,甚至更多)。此外,人們的名字或姓氏可能很少,因此不一致。我想提取由冒號分隔的 ID 構(gòu)建的子字符串,因此對于本示例,它看起來像這樣:"ID, ID2"現(xiàn)在我嘗試了這種方法:import restring = "Bob Rob Smith (L1234567), John Doe (k12345678)"result = re.findall(r'[a-zA-Z][0-9]+', string)','.join(result)它工作得很好,但我想知道是否有更簡單的方法不需要任何額外的模塊。你們有什么想法嗎?
查看完整描述

3 回答

?
滄海一幻覺

TA貢獻1824條經(jīng)驗 獲得超5個贊

我也認為使用re是一種好方法,如果您不必re不惜一切代價使用,那么您可以這樣做:


s = "Bob Rob Smith (L1234567), John Doe (k12345678)"

result = s.replace(')','(').split('(')[1::2]

print(result)

輸出:


['L1234567', 'k12345678']

說明:我想在(and處拆分),但.split方法str只接受一個分隔符,所以我首先替換)為(,然后拆分并得到奇數(shù)元素。此方法適用于以下情況:(和)僅在IDs 周圍使用、s不以 開頭(、s不以 開頭)、任意兩個括號之間至少有一個字符。


查看完整回答
反對 回復 2022-06-07
?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

對我來說,這種RegEx方法似乎是最好的方法。


假設您不確切知道您的 ID 有多少位數(shù)字(引號:后跟幾個數(shù)字),您可以通過整個字符串并捕獲括號內(nèi)的內(nèi)容:


s = "Bob Rob Smith (L1234567), John Doe (k12345678)"


res = []

word = ''

open = False

for x in s:

    if x == '(':

        open = True

        continue

    if x == ')':

        open = False

        res.append(word)

        word = ''

    if open:

        word += x


print(res)

輸出:


['L1234567','k12345678']


查看完整回答
反對 回復 2022-06-07
?
達令說

TA貢獻1821條經(jīng)驗 獲得超6個贊

您可以拆分),并從拆分列表中的每個元素中取出最后 8 個字符,但正則表達式是正確的方法

 [s[-8:] for s in mystring[:-1].split('),')]


查看完整回答
反對 回復 2022-06-07
  • 3 回答
  • 0 關(guān)注
  • 338 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號