使用Python正则表达式将坐标对分离为X和Y元素

使用Python正则表达式将坐标对分离为X和Y元素,python,regex,latex,Python,Regex,Latex,假设我有以下代码段: & $(-1,1)$ & $(0,\infty)$ 如何在python中使用正则表达式将坐标对分离为x和y分量 例如,对于上述部分,我希望收到: x: -1 y: 1 x: 0 y: \infty 目前我正在使用: c = map(str,re.findall(r'-?\S',range)) a = c[1] b = c[3] 但是,这只匹配整数,而不匹配我需要的“\infty” 谢谢。您可以使用re.findall: >>>

假设我有以下代码段:

  & $(-1,1)$
  & $(0,\infty)$
如何在python中使用正则表达式将坐标对分离为x和y分量

例如,对于上述部分,我希望收到:

x: -1 y: 1
x: 0 y: \infty
目前我正在使用:

c = map(str,re.findall(r'-?\S',range))
a = c[1]
b = c[3]
但是,这只匹配整数,而不匹配我需要的“\infty”


谢谢。

您可以使用
re.findall

>>> import re
>>> s="""  & $(-1,1)$
...   & $(0,\infty)$"""
>>> re.findall(r'\((.*),(.*)\)',s)
[('-1', '1'), ('0', '\\infty')]
要将坐标转换为
int
,可以使用以下列表:

>>> l=[[int(i) if i.isdigit() else i for i in coor] for coor in re.findall(r'\((.*),(.*)\)',s)]
[['-1', 1], [0, '\\infty']]

>>> l[0]
['-1', 1]
>>> l[0][0]
'-1'

@KasraAD我可以将此打印为x.group(0)和x.group(1)吗?@zara no
re.findall
不支持!对于单独获取坐标,您可以使用Indexing。由于我是新手,因此我不确定如何进行此操作@kasra@zara我编辑答案!如果您只想使用分组,则需要
re.search
。但是你可以用它匹配一个坐标!谢谢,你介意告诉我如何使用搜索引擎吗@卡斯拉