我有一個(gè)來(lái)自推文的熊貓系列文本。這些推文是關(guān)于狗的。一些推文包含狗的名字。名稱以下列方式顯示?!?.....等等等等命名的名字。等等等等等等......”我需要的作品前后的字符數(shù)未知。我想提取name。我相信我需要使用正向后視斷言和正則表達(dá)式的搜索選項(xiàng)。我查看了 re.search 的文檔以及以下 SO 問(wèn)題:如何提取兩個(gè)標(biāo)記之間的子字符串?和Regex 捕獲了具有正面后視 (python) 的組,以及本教程https://www.rexegg.com/regex-lookarounds.html。我還是覺得卡住了。這是我到目前為止的兩個(gè)想法:一個(gè))tweet = 'This is a Shotokon Macadamia mix named Cheryl. Sophisticated af.'m = re.search('(?<=named)[A-Z][a-z]+', tweet)m.group(0)乙)s.str.extract(^named([A-Z][a-z])\.$)根據(jù)文檔,A) 應(yīng)該返回“Cheryl”,但我收到一個(gè)屬性錯(cuò)誤:AttributeError: 'NoneType' object has no attribute 'group'。B) 僅適用于一個(gè)系列,并非推文系列中的每個(gè)元素都包含“...命名名稱”。結(jié)構(gòu)體。我不確定如何將其合并到代碼中,因此它返回 Cheryl。
2 回答

倚天杖
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
Pythons 說(shuō)m
是 a 'NoneType' object
因?yàn)檎齽t表達(dá)式不匹配任何字符串,所以你不能從它的結(jié)果中提取一個(gè)組。為了獲得正確的匹配,您應(yīng)該在“named”之后添加一個(gè)空格。因此,只需嘗試:
(?<=named )[A-Z][a-z]+
另見https://regex101.com/r/nZiAFN/1

紅糖糍粑
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
以下正則表達(dá)式僅提取出現(xiàn)在命名字符串之后的名稱:
m = re.search('(?<=named\s)(\w+)', tweet)
添加回答
舉報(bào)
0/150
提交
取消