以下是一段文字,我有:在正则表达式,捕获一两件事,或另一个,或两者
G1 13.00
G1 3.00
0.00
27C
我想使用正则表达式来捕获一组是一个字母数字代码(G1或27C)或另一组是float(xx.xx),或两者兼而有之。
对于这个例子,我想这个特定的返回:
(G1,13.00)
(G1,3.00)
(,0.00)
(27C,)
这是最接近的解决方案,我有:
\(?:(\w+) +(\d+\.\d+))|(?: +(\d+\.\d+))|(?: +(\w+))\
这种解决方案的问题是,在最后2个中的值被捕获在第3和第4组中:
(G1,13.00,,)
(G1,3.00,,)
(,,0.00,)
(,,,27C)
有关如何解决它的任何想法?
我发现这个问题,这是接近:In a regular expression, match one thing or another, or both但它回答如何匹配而不是捕获。
在PyPI正则表达式模块,您可以使用'(?|(\ w +)+(\ d + \。\ d +)| +(\ d + \。\ d +)| +( \ w +))' –