[英]Extract integers in a string python re.findall
我有下面的代码,它工作正常,但是当我的字符串是“ hello I am in 12th grade but i am 230 years old
”时,我得到12230
12, 230
但我希望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()
使用str.join
,您可以将多个字符串连接为一个字符串:
>>> 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'
顺便说一句,您可以使用带有str.isdigit
filter
来代替正则表达式:
>>> ''.join(filter(str.isdigit, "hello I am in 12th grade but i am 230 years old"))
'12230'
更新
正如Donkey 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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.