我正在尝试将长度宽度和高度与正则表达式匹配。
我有以下情况
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+)?))?
这将在第一个捕获组中提供length
,在第二个捕获组中提供width
,在第三个捕获组中提供height
。
每个小组都在使用这个子表达式:
(\d+(?:,\d+)?)
这是一个或多个数字可选后跟逗号和小数部分的1+位数。
另请注意,高度部分是可选匹配,因为我们正在使用(?: x (\d+(?:,\d+)?))?
使该部分成为可选项。
答案 1 :(得分:1)
简单如下:
^Produktabmessungen\K(.+)
请参阅a demo on regex101.com(并注意不同的修饰符!)
在这种情况下你真的不需要\K
但需要多行标志。你用的是什么语言?