我看到很多问题,询问如何从字符串中删除前导零,但我还没有看到任何询问如何从字符串中删除任何和所有前导数字的问题。
我一直在尝试使用lstrip
,type
函数,isdigit
,切片表示法和正则表达式的组合,但尚未找到方法。
有一种简单的方法吗?
例如:
答案 0 :(得分:5)
一种简单的方法可能是用string.digits
来表示所有数字,它只是简单地为您提供一个字符串,其中包含要string.lstrip
删除的所有数字字符'0123456789'
。
>>> from string import digits
>>> s = '123dog12'
>>> s.lstrip(digits)
'dog12'
答案 1 :(得分:3)
我想指出,虽然Mitch和RebelWithoutAPulse的答案都是正确的,但他们并没有做同样的事情。
Mitch的答案留下了“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,' 0' 。
$scope.data = myData;
另一方面,RevelWithoutAPulse的回答,左边剥离任何已知为数字的字符。
>>> from string import digits
>>> digits
'0123456789'
>>> '123dog12'.lstrip(digits)
'dog12'
那有什么区别?嗯,有两点不同:
>>> import re
>>> re.sub('^\d+', '', '123dog12')
'dog12'
对RTL语言不明确。实际上,它会删除前导匹配字符,这些字符可能位于右侧。 Regexp的lstrip
运算符更直接。以下是一些例子:
^
(注意阿拉伯语的例子,从右到左阅读阿拉伯语,右边的数字是正确的被删除)
所以...我猜结论是肯定会根据你想要做的事情选择正确的解决方案。
答案 2 :(得分:1)