首页 > 解决方案 > 我想使用正则表达式在python中返回索引

问题描述

我想从数组中获取索引。

例如:

s = "arr[2]"

我想使用正则表达式返回索引[2]

更新!我还想返回数组的名称(arr)

标签: pythonregexpython-3.x

解决方案


这应该以正则表达式的方式进行!(找出方括号内所有可能的数字[]

def get_idx(s):
    m = re.search(r"\[([-?a-zA-Z0-9_]+)\]", s)
    return m.group(1)

然后你可以测试它

print(get_idx("arr[2]"))
#2
print(get_idx("arr[24]"))
#24
print(get_idx("arr[245]"))
#245
print(get_idx("arr[-2]"))
#-2
print(get_idx("arr2[-2]"))
#-2
print(get_idx("arr2[hex]"))
#hex

为了得到数组的名称,你可以做

def get_name(s):
    m = re.search(r"(.*)\[.*", s)
    return m.group(1)

然后你可以测试它

import re

def get_name(s):
    m = re.search(r"(.*)\[.*", s)
    return m.group(1)

print(get_name("arr[2]"))
#arr
print(get_name("arr[24]"))
#arr
print(get_name("arr[245]"))
#arr
print(get_name("arr[-2]"))
#arr
print(get_name("arr2[-2]"))
#arr2

推荐阅读