使用 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'
假设我有以下 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'