2024-06-07 06:45:17 发布
网友
我需要从一个无空格的字符串中提取一个数字,该字符串的数字在brakets中,例如:
"auxiliary[0]"
我唯一能想到的是:
def extract_num(s): s1=s.split["["] s2=s1[1].split["]"] return int(s2[0])
这看起来很笨拙,有人知道更好的方法吗?(数字始终以“[]”为单位)
print a[-2]
print a[a.index(']') - 1]
print a[a.index('[') + 1]
可以使用正则表达式(使用内置的^{} module):
import re bracketed_number = re.compile(r'\[(\d+)\]') def extract_num(s): return int(bracketed_number.search(s).group(1))
模式匹配一个文字[字符,后跟一个或多个数字(\d转义表示数字字符组,+表示一个或多个),后跟文字]。通过在\d+部分加上括号,我们创建了一个捕获组,我们可以通过调用.group(1)(“获取第一个捕获组结果”)来提取它。你知道吗
[
\d
+
]
\d+
.group(1)
结果:
>>> extract_num("auxiliary[0]") 0 >>> extract_num("foobar[42]") 42
我会用正则表达式来得到数字。参见文档:http://docs.python.org/2/library/re.html
比如:
import re def extract_num(s): m = re.search('\[(\d+)\]', s) return int(m.group(1))
可以使用正则表达式(使用内置的^{} module ):
模式匹配一个文字
[
字符,后跟一个或多个数字(\d
转义表示数字字符组,+
表示一个或多个),后跟文字]
。通过在\d+
部分加上括号,我们创建了一个捕获组,我们可以通过调用.group(1)
(“获取第一个捕获组结果”)来提取它。你知道吗结果:
我会用正则表达式来得到数字。参见文档:http://docs.python.org/2/library/re.html
比如:
相关问题 更多 >
编程相关推荐