使用Python Regex将坐标对分成X和Y组件

时间:2015-02-26 20:41:32

标签: python regex latex

假设我有以下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"我需要。

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用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'