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