用正则表达式匹配产品尺寸
问题描述:
我试图用正则表达式匹配长度的宽度和高度。用正则表达式匹配产品尺寸
我有以下的情况下,
Artikelgewicht3,7 Kg
Produktabmessungen60,4 x 46,5 x 42 cm
or
Artikelgewicht3,7 Kg
Produktabmessungen60 x 46 x 42
or
Artikelgewicht3,7 Kg
Produktabmessungen60 x 46
可以(\d+) x (\d+) x (\d+)
匹配第二种情况,工作正常。
我进一步试图匹配第一个和第三个案例(\d+)(\\,\d+)? x (\d+)(\\,\d+)? x (\d+)(\\,\d+)?
。
任何建议我做错了什么?
答
您可以使用可选的火柴在你的正则表达式来涵盖所有三种情况:
(\d+(?:,\d+)?) x (\d+(?:,\d+)?)(?: x (\d+(?:,\d+)?))?
这将在3日给在第一次捕获组length
,width
在第二捕获组和height
。
每个组使用该子表达式:
(\d+(?:,\d+)?)
为1个或多个数字任选跟一个逗号和1+位数小数部分。
此外,请注意,高度部分是可选匹配,因为我们使用(?: x (\d+(?:,\d+)?))?
来使该部分可选。
答
'\\'转义反斜杠并字面匹配字符'\'。你的第三种情况只有2个维度,而你的表达需要3个维度。 –