Regex 用正则表达式匹配产品维度
我试图用正则表达式匹配长度、宽度和高度 我有以下几种情况Regex 用正则表达式匹配产品维度,regex,pattern-matching,regular-language,Regex,Pattern Matching,Regular Language,我试图用正则表达式匹配长度、宽度和高度 我有以下几种情况 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
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(.+)
请参见(注意不同的修饰语!)。在这种情况下,您实际上不需要
\K
,但需要多行标志。你用什么语言 您可以在正则表达式中使用可选匹配来覆盖所有3种情况:
(\d+(?:,\d+)?) x (\d+(?:,\d+)?)(?: x (\d+(?:,\d+)?))?
这将在第一个捕获组中给出长度
,在第二个捕获组中给出宽度
,在第三个捕获组中给出高度
每个组都使用此子表达式:
(\d+(?:,\d+)?)
它是一个或多个数字(可选),后跟逗号,小数部分为1+位
另外,请注意,高度部分是可选的匹配,因为我们正在使用
(?:x(\d+(?:,\d+))
使该部分成为可选的。\
将反斜杠转义并逐字匹配字符\
。另外,第三种情况下只有2维,而表达式需要3维。