Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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,我刚开始学习python中的正则表达式,我想知道如何使用python中的正则表达式将我想要的整数(正整数和负整数)存储到列表中 比如说 这是列表中的数据 data = [u'\x1b[0m[\x1b[1m\x1b[0m\xbb\x1b[0m\x1b[36m]\x1b[0m (A=-5,B=5)', u'\x1b[0m[\x1b[1m\x1b[0m\xbb\x1b[0m\x1b[36m]\x1b[0m (A=5,Y=5)', u'\x1b[0m[\x1b[1m\x1

我刚开始学习python中的正则表达式,我想知道如何使用python中的正则表达式将我想要的整数(正整数和负整数)存储到列表中

比如说

这是列表中的数据

data =
    [u'\x1b[0m[\x1b[1m\x1b[0m\xbb\x1b[0m\x1b[36m]\x1b[0m (A=-5,B=5)', 

    u'\x1b[0m[\x1b[1m\x1b[0m\xbb\x1b[0m\x1b[36m]\x1b[0m (A=5,Y=5)', 

    u'\x1b[0m[\x1b[1m\x1b[10m\xbb\x1b[0m\x1b[36m]\x1b[0m : ']
如何提取A和B的整数值(负值和正值)并将其存储在变量中,以便处理这些数字

我试过这样做,但是列表是空的

for line in data[0]: 
        pattern = re.compile("([A-Z]=(-?\d+?),[A-Z]=(-?\d+?))") 
        store = pattern.findall(line)

print store

感谢并感谢您为正负整数所做的一切。在使用之间有无逗号:
-?(?:\d+,?)+

-?
带或不带负号
(?:
打开一个组
\d+
一个或多个数字
,?
可选逗号
关闭组

(?:\d+,?)+
此组可能有一次或一次会议

根据您尝试完成的内容,这可能会起作用:

import re

data = [
    u'\x1b[0m[\x1b[1m\x1b[0m\xbb\x1b[0m\x1b[36m]\x1b[0m (A=-5,B=5)',
    u'\x1b[0m[\x1b[1m\x1b[0m\xbb\x1b[0m\x1b[36m]\x1b[0m (A=5,Y=5)',
    u'\x1b[0m[\x1b[1m\x1b[10m\xbb\x1b[0m\x1b[36m]\x1b[0m : '
]

for line in data:
    m = re.search('\((\w)=(-?\d+),(\w)=(-?\d+)\)', line)
    if not m:
            continue
    myvars = {}
    myvars[m.group(1)] = int(m.group(2))
    myvars[m.group(3)] = int(m.group(4))
    print myvars
这将生成一个字典(
myvars
),其中包含当前行中的变量。如果使用此选项,则在尝试从字典中获取变量之前,必须检查所需变量是否已定义。上面的输出是:

{u'A': -5, u'B': 5}
{u'A': 5, u'Y': 5}

如果您需要帮助,您需要发布您尝试过的代码的一部分。对此深表歉意!我编辑了我的帖子:)我正在尝试将整数值(例如-5或5)存储到变量中!我可以知道如何在去掉前面的字符、逗号的同时实现这一点吗?变量的名称是否需要与字符串中的名称相同?将它作为类实例变量可以吗?它不是!我只需要将相关的数字(正数和整数)存储到一个变量中,这样我就可以处理这些值:)我尝试过这样的smth,但列表是空的。。对于数据[0]中的行:pattern=re.compile(([A-Z]=(?\d+?),[A-Z]=(?\d+?)))store=pattern.findall(line)print store您是否要使用迭代
数据行的
for
循环中的数字?还是在那个循环之后?如果在循环中,变量是上面我的代码中的
m.group(2)
m.group(4)
。如果在循环之后,是否需要元组列表?(例如,
[(-5,5)、(5,5)]
)或其他格式