python中用于正整数和负整数的正则表达式
我刚开始学习python中的正则表达式,我想知道如何使用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
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)]
)或其他格式