text1=""" my acc no is 1234 5678.I pay 123$ as an interest @ 14.9% starting from 12/07/19.My debit number is 123-45666-789-112"""我希望輸出具有所有數(shù)字,如1234 5678, 123$, 14.9%, 12/07/19,123-45666-789-112我試圖運(yùn)行的代碼給出了部分結(jié)果。請幫幫我import rereg="\d{1,}[^a-zA-Z]?\d{1,}?[^a-zA-Z]?\d?"gc=re.compile(reg)number = gc.findall(text1)print(number)['1234 567', '123$', '14.9%', '12/07', '19.', '123-456', '66-789', '112']另外,如果我想要數(shù)字前的兩個(gè)單詞,我該如何提?。考碼cc編號是1234 5678等。
3 回答

哈士奇WWW
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
要獲得完整結(jié)果,您可以使用以下正則表達(dá)式:
(?:\d+[ $%./-]?)+
它捕獲可能由單個(gè)連續(xù)數(shù)字分隔符分隔的數(shù)字序列。這捕獲日期,以單個(gè)空格作為分隔符thundreds和貨幣/百分號的數(shù)字,但將避免匹配1. 2
在sentence 1. 2nd sentence
和葉的可能性,使用倍數(shù)空格分開的數(shù)字。
要包括前兩個(gè)詞,您可以使用這個(gè)詞:
[^\d ]+ [^\d ]+ (?:\d+[ $%./-]?)+
在繼續(xù)之前的正則表達(dá)式之前,它只捕獲兩個(gè)由空格分隔的非數(shù)字字符序列。
(注意賬號的情況下,只會捕獲“no is”)

郎朗坤
TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果您希望單獨(dú)匹配,可以使用此正則表達(dá)式代碼
\d{1,2}[/\s\.-]\d{1,2}[/\s\.-](\d{2}|\d{4})\b|\d{2,4}[.]\d{1,4}[%]|\d{1,5}[$]|\d{1,4}[-]\d{1,8}[-]\d{1,4}[-]\d{1,8}|\d{1,8}[\s]\d{1,8}
如果您將日期作為 19/05/193 傳遞,則此代碼正確匹配日期,它將不匹配
添加回答
舉報(bào)
0/150
提交
取消