使用正则表达式匹配产品尺寸
Match product dimensions with regular expression
我正在尝试使用正则表达式匹配长度宽度和高度。
我有以下情况
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+)?
匹配。
对我做错了什么有什么建议吗?
简单如:
^Produktabmessungen\K(.+)
参见 a demo on regex101.com(注意不同的修饰符!)。
在这种情况下你并不真的需要 \K
但需要多行标志。你使用什么语言?
您可以在正则表达式中使用可选匹配项来涵盖所有 3 种情况:
(\d+(?:,\d+)?) x (\d+(?:,\d+)?)(?: x (\d+(?:,\d+)?))?
这将在第一个捕获组中给出 length
,在第二个捕获组中给出 width
,在第三个捕获组中给出 height
。
每个小组都在使用这个子表达式:
(\d+(?:,\d+)?)
其中 1 位或多位 可选 后跟一个逗号和 1+ 位小数部分。
另外,请注意高度部分是一个可选的匹配项,因为我们使用 (?: x (\d+(?:,\d+)?))?
使该部分成为可选的。
我正在尝试使用正则表达式匹配长度宽度和高度。
我有以下情况
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+)?
匹配。
对我做错了什么有什么建议吗?
简单如:
^Produktabmessungen\K(.+)
参见 a demo on regex101.com(注意不同的修饰符!)。
在这种情况下你并不真的需要 \K
但需要多行标志。你使用什么语言?
您可以在正则表达式中使用可选匹配项来涵盖所有 3 种情况:
(\d+(?:,\d+)?) x (\d+(?:,\d+)?)(?: x (\d+(?:,\d+)?))?
这将在第一个捕获组中给出 length
,在第二个捕获组中给出 width
,在第三个捕获组中给出 height
。
每个小组都在使用这个子表达式:
(\d+(?:,\d+)?)
其中 1 位或多位 可选 后跟一个逗号和 1+ 位小数部分。
另外,请注意高度部分是一个可选的匹配项,因为我们使用 (?: x (\d+(?:,\d+)?))?
使该部分成为可选的。