Skip to main content
 首页 » 编程设计

python之从 Python 中的无空格字符串中提取数字

2025年05月04日31dudu

我需要从一个没有空格的字符串中提取一个数字,这个数字在括号中,例如:

"auxiliary[0]" 

我能想到的唯一方法是:

def extract_num(s):     
   s1=s.split["["] 
   s2=s1[1].split["]"] 
   return int(s2[0]) 

这看起来很笨拙,有人知道更好的方法吗? (数字总是在“[]”小括号中)

请您参考如下方法:

您可以使用正则表达式(使用内置的 re module ):

import re 
 
bracketed_number = re.compile(r'\[(\d+)\]') 
 
def extract_num(s): 
    return int(bracketed_number.search(s).group(1)) 

该模式匹配文字 [ 字符,后跟 1 个或多个数字(\d 转义表示数字字符组,+表示 1 个或多个),后跟文字 ]。通过在 \d+ 部分加上括号,我们创建了一个捕获组,我们可以通过调用 .group(1) (“获取第一个捕获组结果”)来提取它.

结果:

>>> extract_num("auxiliary[0]") 
0 
>>> extract_num("foobar[42]") 
42