我有一個由一組數字和一個 URL 組成的字串。除了附加到 URL 的數字字符之外,我只需要所有數字字符。下面是我洗掉所有非數字字符的代碼,但它不會從 URL 中洗掉數字。
test = '4758 11b98https://www.website11/111'
re.sub("[^0-9]","",test)
expected result: 47581198
uj5u.com熱心網友回復:
原答案
改變策略,只保留領先數字并忽略其余數字要容易得多:
import re
test = '47581198https://www.website11/111'
re.findall(r'^\d ', test)[0]
或者,如果不確定前導數字是否存在,則使用 match:
m = re.match(r'\d ', test)
if m:
m = m.group()
輸出: '47581198'
問題更改后編輯
如果您確定“http://”字串不能出現在您的初始號碼中。
然后您需要兩次通過,一次洗掉 URL,另一次清除數字。
test = '4758 11b98https://www.website11/1111'
re.sub('\D', '', re.sub('https?://.*', '', test))
輸出: '47581198'
uj5u.com熱心網友回復:
請檢查以下運算式:
y=re.compile('([0-9] )(?=.*http)')
tokens = y.findall(test)
print(''.join(tokens))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/310961.html
下一篇:鍵入時更新Select2的值?
