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})?)
我正在尝试从 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})?)