使用 Python 正则表达式将坐标对分成 X 和 Y 分量

Using Python Regex to Separate a Coordinate Pair into X and Y Commponents

假设我有以下 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 :

>>> 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'