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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Python 中使用正則表達(dá)式在文本后提取字符串

在 Python 中使用正則表達(dá)式在文本后提取字符串

海綿寶寶撒 2023-06-13 15:37:07
我有一個(gè)文檔文件,它具有以下結(jié)構(gòu):This is a fairy tale written by    John Doe and Mary Smith        Auckland,somewhere     This story is awesome我想提取兩行文本,它們是:        John Doe and Mary Smith                Auckland,somewhere并使用正則表達(dá)式將這些值附加到列表中。我要提取的兩行總是在This is a fairy tale和 所寫(xiě)的行之間This story is awesome。我怎樣才能做到這一點(diǎn)?我嘗試了一些與 的組合before_keyword,keyword,after_keyword=text.partition(regex),但一點(diǎn)運(yùn)氣都沒(méi)有。
查看完整描述

4 回答

?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

re.DOTALL您可以使用正則表達(dá)式來(lái).匹配任何字符,包括換行符。一旦在兩個(gè)分隔符之間有了文本,就可以使用另一個(gè)不帶 的正則表達(dá)式來(lái)re.DOTALL提取至少包含一個(gè)非空白字符 ( \S) 的行。


import re


lst = []


with open('input.txt') as f:

    text = f.read()


match = re.search('This is a fairy tale written by(.*?)This story is awesome', 

                  text, re.DOTALL)


if match:

    lst.extend(re.findall('.*\S.*', match.group(1)))


print(lst)

給出:


['    John Doe and Mary Smith', '    Auckland,somewhere']


查看完整回答
反對(duì) 回復(fù) 2023-06-13
?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

你可以從這個(gè)開(kāi)始:

re.search(r'(?<=This is a fairy tale written by\n).*?(?=\n\s*This story is awesome)', s, re.MULTILINE|re.DOTALL).group(0)

并微調(diào)這個(gè)正則表達(dá)式。re.MULTILINE可能會(huì)被省略,因?yàn)槟銢](méi)有^$無(wú)論如何,但也re.DOTALL需要讓.匹配換行符。上面的正則表達(dá)式使用向前看和向后看(?<=),(?=)。如果您不喜歡那樣,您可以使用括號(hào)來(lái)代替捕獲。


查看完整回答
反對(duì) 回復(fù) 2023-06-13
?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果您可以從文檔文件創(chuàng)建字符串列表,則無(wú)需使用正則表達(dá)式。只需執(zhí)行這個(gè)簡(jiǎn)單的程序:


fileContent = ['This is a fairy tale written by','John Doe and Mary Smith','Auckland,somewhere','This story is awesome',

               'Some other things', 'story texts', 'Not Important data',

               'This is a fairy tale written by','Kem Cho?','Majama?','This story is awesome', 'Not important data']

               

authorsList = []

for i in range(len(fileContent)-3):

    if fileContent[i] == 'This is a fairy tale written by' and fileContent[i+3] == 'This story is awesome':

        authorsList.append([fileContent[i+1], fileContent[i+2]])


print(authorsList)

在這里,我只是檢查'This is a fairy tale written by'and'This story is awesome'如果找到,則在列表中在它之間添加文本。


輸出:


[['John Doe and Mary Smith', 'Auckland,somewhere'], ['Kem Cho?', 'Majama?']]


查看完整回答
反對(duì) 回復(fù) 2023-06-13
?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

嘗試改用它。它應(yīng)該匹配這兩個(gè)字符串之間的任何內(nèi)容。

re.search(r'(?<=This is a fairy tale).*?(?=This story is awesome)',text)


查看完整回答
反對(duì) 回復(fù) 2023-06-13
  • 4 回答
  • 0 關(guān)注
  • 245 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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