提取字符串python re.findall中的整数
我有下面的代码,运行良好,但当我的字符串为“提取字符串python re.findall中的整数,python,regex,string,Python,Regex,String,我有下面的代码,运行良好,但当我的字符串为“你好,我在12年级,但我230岁”时,我得到了12330,但我希望12230作为一个整数。我如何做到这一点 import re def main(): str1 = 'ABCD12' str1 = input("Enter a String: ") str1 = "3158 reviews" person = re.findall('\d+', str1) if person: print(pe
你好,我在12年级,但我230岁
”时,我得到了12330
,但我希望12230
作为一个整数。我如何做到这一点
import re
def main():
str1 = 'ABCD12'
str1 = input("Enter a String: ")
str1 = "3158 reviews"
person = re.findall('\d+', str1)
if person:
print(person)
else:
print("0")
main()
使用,可以将多个字符串合并为一个字符串:
>>> import re
>>> re.findall(r'\d+', "hello I am in 12th grade but i am 230 years old")
['12', '230']
>>> ''.join(re.findall(r'\d+', "hello I am in 12th grade but i am 230 years old"))
'12230'
顺便说一句,除了使用正则表达式,您还可以使用:
更新 正如Kong所评论的,您还可以使用
re.sub
删除非数字字符:
>>> re.sub(r'\D+', '', "hello I am in 12th grade but i am 230 years old")
'12230'
但是,有了它,你就无法检查是否有数字。我不明白你打算在用户输入后手动为str1赋值
import re
def main():
str1 = input("Enter a String: ")
person = re.findall('\d+', str1)
print(''.join(person) if person else '0')
main()
普通版:
def main():
str1 = 'ABCD12'
str1 = input("Enter a String: ")
str1 = "3158 reviews"
person = ''.join(filter(str.isdigit, str1))
if person:
print(person)
else:
print("0")
main()
你能把所有的非数字都去掉吗
person=re.sub('[^0-9]','',str1)
你应该接受对你最有帮助的答案
def main():
str1 = 'ABCD12'
str1 = input("Enter a String: ")
str1 = "3158 reviews"
person = ''.join(filter(str.isdigit, str1))
if person:
print(person)
else:
print("0")
main()