繁体   English   中英

从字符串中删除所有内容。仅在其中保留数字

[英]Remove Everything from a string .. Only Leave Numbers in it

该字符串可能是:

JAIDK392**8'^+%&7JDJ0204İŞÇéS29487

我想从中删除所有内容,但只留下数字。

一个简单的方法是使用正则表达式库re

>>> import re
>>> yourString = "JAIDK392**8'^+%&7JDJ0204İŞÇéS29487"
>>> numberOnlyString = re.sub('[^0-9]', '', yourString)
>>> print numberOnlyString
'39287020429487'

有一种无需使用任何库即可完成此操作的方法。 您可以使用内置函数ord获取字符的ASCII码。 然后,您可以解析字符串中的每个字符以检查它是否为数字(如果为数字,则其ASCII码应在47到58之间。

 str = "JAIDK392**8'^+%&7JDJ0204İŞÇéS29487" output = [] for char in str: if 47 < ord(char) < 58: output.append(char) result=''.join(output) print result 

正则表达式很棒,但是另一种方式是:

>>> import string
>>> digits_only = "".join(_ for _ in your_string if _ in string.digits)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM