Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.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 如何从字符串中提取前导数字?_Python_Regex - Fatal编程技术网

Python 如何从字符串中提取前导数字?

Python 如何从字符串中提取前导数字?,python,regex,Python,Regex,我有两个字符串,我想根据其中的数字拆分它们 例: 5你好 10地狱世界 16HelloWorldPython 在所有这些情况下,我想提取5、10和16的数字。数字可能会达到无穷大 这是因为我想提取数字并比较字符串的长度是否相等 >>> import re >>> re.findall(r'\d+', '5Hello') [5] >>> re.findall(r'\d+', '10HelloWorld') [10] 编辑:特定问题的答案

我有两个字符串,我想根据其中的数字拆分它们

例:

  • 5你好
  • 10地狱世界
  • 16HelloWorldPython
  • 在所有这些情况下,我想提取5、10和16的数字。数字可能会达到无穷大

    这是因为我想提取数字并比较字符串的长度是否相等

    >>> import re
    >>> re.findall(r'\d+', '5Hello')
    [5]  
    >>> re.findall(r'\d+', '10HelloWorld')
    [10]
    
    编辑:特定问题的答案

    import re
    
    def check_len(x):
      match = re.search(r'(\d+)(\w+)', x)
      return int(match[1])==len(match[2])
    
    check_len('5hello')
    True 
    
    check_len('4rabbits')
    False
    

    你在找这样的东西吗

    import re
    def get_num(raw_str):
        number = re.search(r'\d+',raw_str)
        return number.group(0)
        
    print(get_num('5hello'))    
    print(get_num('10HelloWorld')) 
    print(get_num('16HelloWorldPython'))
    

    使用
    re.findall(r'\d+',inp)
    所以需要从字符串中提取前导数字?findall函数中的“r”是什么。r在单引号中表示它是正则表达式模式。我知道我们不必在函数中使用“r”。