我有很多類似“01568460144”、“0005855048560”的字串
我想從頭開始洗掉所有零。我試過這個,它只從一開始就洗掉了一個 zeo,但我也有其他字串,它們在一開始就有多個 zeo。
re.sub(r'0','',number)
所以我的預期結果將是“0005855048560”這種型別的字串“5855048560”
uj5u.com熱心網友回復:
如果目標是從字串中洗掉所有前導零,請跳過正則運算式,然后呼叫.lstrip('0')字串。當*strip引數不是單個字符時,函式系列有點奇怪,但為了剝離單個字符的前導/尾隨副本,它們是完美的:
>>> s = '000123'
>>> s = s.lstrip('0')
>>> s
'123'
uj5u.com熱心網友回復:
>>> v = '0001111110'
>>>
>>> str(int(v))
'1111110'
>>>
>>> str(int('0005855048560'))
'5855048560'
uj5u.com熱心網友回復:
如果字串應該只包含數字,您可以使用其中isnumeric()之一或使用 re.sub 并僅匹配數字:
import re
strings = [
"01568460144",
"0005855048560",
"00test",
"00000",
"0"
]
for s1 in strings:
if s1.isnumeric():
print(f"'{s1.lstrip('0')}'")
else:
print(f"'{s1}'")
print("----------------------------")
for s2 in strings:
res = re.sub(r"^0 (\d*)$", r"\1", s2)
print(f"'{res}'")
輸出
'1568460144'
'5855048560'
'00test'
''
''
----------------------------
'1568460144'
'5855048560'
'00test'
''
''
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516500.html
標籤:Python细绳代替
