用正则表达式匹配产品尺寸

用正则表达式匹配产品尺寸

问题描述:

我试图用正则表达式匹配长度的宽度和高度。用正则表达式匹配产品尺寸

我有以下的情况下,

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+)?

任何建议我做错了什么?

+0

'\\'转义反斜杠并字面匹配字符'\'。你的第三种情况只有2个维度,而你的表达需要3个维度。 –

您可以使用可选的火柴在你的正则表达式来涵盖所有三种情况:

(\d+(?:,\d+)?) x (\d+(?:,\d+)?)(?: x (\d+(?:,\d+)?))? 

RegEx Demo

这将在3日给在第一次捕获组lengthwidth在第二捕获组和height

每个组使用该子表达式:

(\d+(?:,\d+)?) 

为1个或多个数字任选跟一个逗号和1+位数小数部分。

此外,请注意,高度部分是可选匹配,因为我们使用(?: x (\d+(?:,\d+)?))?来使该部分可选。

简单:

^Produktabmessungen\K(.+) 

a demo on regex101.com(和介意不同的修饰符!)。
在这种情况下,您确实不需要\K,但需要多行标志。你在用什么语言?