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

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

刪除所有與 Python 中的正則表達(dá)式模式不匹配的內(nèi)容

刪除所有與 Python 中的正則表達(dá)式模式不匹配的內(nèi)容

尚方寶劍之說(shuō) 2021-12-21 10:47:38
我有一個(gè)正則表達(dá)式模式,用于標(biāo)識(shí)一整列日期中的日期,但有些日期包含在一個(gè)字符串中,而有些則只是簡(jiǎn)單的日期本身。我的正則表達(dá)式模式完美地找到了每個(gè)日期,但現(xiàn)在我想能夠說(shuō)“刪除不符合日期模式的所有內(nèi)容”,這將刪除某些日期之前或之后的文本。我想要的東西的例子:Mexico [12/20/1985] 如果我可以刪除與模式不匹配的內(nèi)容,那么括號(hào)和墨西哥就會(huì)消失假設(shè)我的正則表達(dá)式模式是(我還有兩個(gè)匹配更具體的日期格式,但不包括它們,因?yàn)檫@無(wú)關(guān)緊要:pattern = (r"(19|20)\d\d")我正在使用has_date = data.str.contains(pattern),它可以完美地找到我要找的東西。但是,現(xiàn)在我已經(jīng)確定了具有我想要的日期的觀察結(jié)果,我需要去除/刪除/替換所有不是那種模式的東西。我制作了一個(gè)文件,其中包含與正則表達(dá)式模式不匹配的內(nèi)容以及匹配的內(nèi)容,并檢查以確保我的正則表達(dá)式模式包含所有內(nèi)容,因此我在這方面做得很好。有人對(duì)如何替換不是我的模式有任何建議嗎?歡迎任何想法。謝謝
查看完整描述

1 回答

?
皈依舞

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

要解決您的確切問(wèn)題,即替換與模式不匹配的所有內(nèi)容,您可以使用

df['Data'] = df['Data'].str.replace(r"(?s)((?:19|20)\d\d)?.", r"\1")

請(qǐng)參閱正則表達(dá)式演示。

在這里,(?s).匹配任何字符,((?:19|20)\d\d)?是一個(gè)可選的捕獲組#1,它匹配19或匹配20任何 2 位數(shù)字 1 或 0 次,然后匹配任何帶有.模式的字符。如果第 1 組匹配,由于\1反向引用,它將被放回結(jié)果中。

但是,您似乎只想從數(shù)據(jù)中提取年份,如果沒(méi)有,只需獲取一個(gè)空字符串,因此請(qǐng)使用

df['Data'] = df['Data'].str.extract(r'\b((?:19|20)\d{2})\b', expand=False).fillna('')

\b((?:19|20)\d{2})\b將匹配1920然后任何兩個(gè)數(shù)字作為一個(gè)整體字(由于\b字邊界)。


查看完整回答
反對(duì) 回復(fù) 2021-12-21
  • 1 回答
  • 0 關(guān)注
  • 305 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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