Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提取字符串python re.findall中的整数_Python_Regex_String - Fatal编程技术网

提取字符串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()