我现在试图从字符串中提取大小,这是一个非常常见的模式,我猜:AxBxC其中A,B,下用X分离(可能是X具有空间也),是尺寸(整数或浮点数):Python正则表达式:正确的方法来提取分离的数字(AxBxC - > [A,B,C])
import re
s = 'zzz 3062 0.2 aaa 15.8x20.2x12.2875 mm'
我期待获得在线订购三个数字:15.8,20.2,12.2875] 唯一的工作方法我现在是丑陋的:
r1 = re.findall('(\d+\.?\d*)\ *x\ *', s)
r2 = re.findall('\ *x\ *(\d+\.?\d*)', s)
r1.extend(r2)
print(set(r1))
{'15.8', '20.2', '12.2875'}
有没有什么办法可以使用单一健壮正则表达式提取这些数字? 谢谢。
不会'\ d + \ * \ d +'够吗?这应该得到除了小数点以外的任何数字。 对于例如你找到[3062,0.2,15.8,20.2,12.2875] – Zinki
@Zinki号将得到那些'3062'和'0.2'了。 –
也许're.findall(R '(\ d [\ d] *)×(\ d [\ d] *)×(\ d [\ d] *)',S)'?这些数字总是三倍,不是吗?看[正则表达式演示](https://regex101.com/r/0K5v5P/1)。 –