我有一個(gè)字符串列表,我只想從中提取項(xiàng)目名稱,如果有的話,帶空格。字符串保留在 named 列中0,索引僅供參考。例如,從每個(gè)索引行我想要以下結(jié)果:索引 - 預(yù)期結(jié)果0 - BOV BCONTRA1 - BF 假釋 C2 - 鯪魚塊... 等等。請(qǐng)注意,內(nèi)聯(lián) 25 所需結(jié)果未與前面的數(shù)字用空格分隔.索引行 30 中的單詞行之間可以有一個(gè)點(diǎn)。我試過(guò)re.findall(r"\n\d{1,2} \d+(\b\w+\b)")沒有成功。也re.findall(r"\n\d{1,2} \d+( ?\w+)")只給我第一個(gè)詞,我想要所有的詞,而不僅僅是第一個(gè)。這些行以一個(gè)\n未打印在列表中的字符開頭。
2 回答

拉風(fēng)的咖菲貓
TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
所以基本上你需要文本中的所有大寫字符串。試試這個(gè)表達(dá)式,它會(huì)得到所有帶或不帶空格的文本
re.findall('[A-Z]+[ A-Z]*', text)

ABOUTYOU
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
看起來(lái)你想要[A-Z .]+
,而不是“單詞”(由 表示r'\w'
),由整數(shù)包圍。\w
映射到?[a-zA-Z0-9_]
.
這是正則表達(dá)式字符串:r'\d+ \d+([A-Z .]+)\d+'
。
我不知道你的意思是每行之前有一個(gè)換行符。如果您有一個(gè)包含行的字符串,最好將輸入拆分為行string.splitlines()
,然后在每個(gè)相關(guān)行上進(jìn)行線性正則表達(dá)式匹配(re.match
因此正則表達(dá)式僅從頭開始匹配)。
添加回答
舉報(bào)
0/150
提交
取消