Python 正则表达式提取宽度 x 深度 x 高度

Python Regex Extract Width x Depth x Height

我正在尝试从 df 中的“描述”列中提取项目的物理尺寸,以使用它创建一个新列。

尺寸通常以这种格式 (120x80x100) 出现在长描述的中间,例如:

Lorem ipsum dolor sit amet, consectetur adipiscing elit 120x80x100 ed do eiusmod tempor...

但有时中间有空格:

120 x 80 x 100

或没有身高:

120x80
120 x 80

有什么帮助吗? 提前致谢

像这样的东西应该可以工作:

\d+(\s?x\s?\d+){1,2}

我们可以尝试使用 re.findall 方法,使用正则表达式模式覆盖所有可能的维度格式:

inp = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit 1. 20x80x100 ed do 120 x 80 x 100 eiusmod 120x80 tempor...'
dims = re.findall(r'\d+(?:\s*x\s*\d+){1,2}', inp)
print(dims)  # ['120x80x100', '120 x 80 x 100', '120x80']

您可以使用 regex\d+\s*x\s*\d+(?:\s*x\s*\d+)?

解释:

  • \d+: 一位或多位
  • \s*:零个或多个空白字符
  • x:字面意思,x
  • (?:\s*x\s*\d+)?: 可选非捕获组

如果您希望数字为一到三位数,请将 \d+ 替换为 \d{1,3},如 regex\d{1,3}\s*x\s*\d{1,3}(?:\s*x\s*\d{1,3})?.[=22= 中所示]

如果您的代码要求您使用组,请按如下方式进行:

(\d{1,3}\s*x\s*\d{1,3}(?:\s*x\s*\d{1,3})?)