剥离所有东西,直到达到任何数字(0-9)?

时间:2016-07-01 18:38:25

标签: python string replace

如何删除导致数字的所有内容?当然,这必须适用于任何数字,而不仅仅是1。

我希望time作为输入。并blahblahblah 1 main street作为输出。

4 个答案:

答案 0 :(得分:5)

您可以使用itertools.dropwhile。在达到'1'(或任何其他数字)之前掉落:

from itertools import dropwhile

s = 'blahblahblah 1 main street'
r = ''.join(dropwhile(lambda x: not x.isdigit(), s))

print(r)
# '1 main street'

适用于所有数字

答案 1 :(得分:3)

您可以使用re模块的sub功能替换左侧的所有非数字字符。

import re

s = 'blahblahblah 1 main street'
re.sub(re.compile(r'^[^0-9]*'), '', s)

#Outputs '1 main street'

答案 2 :(得分:1)

这是一个更简单的解决方案:

s = "blahblahblah 1 main street"

i = 0
for char in s:
   if char.isdigit():
      s = s[i:]
      break
   i += 1

print(s)

从您遇到数字的位置开始切割原始字符串,直到字符串结束。

答案 3 :(得分:0)

您可以通过简单使用ASCII代码来实现此目的。 ASCII的0是48,9是57.所以你可以做这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.multidex.dexapp">
<application
    ...
    android:name="android.support.multidex.MultiDexApplication">
    ...
</application>