我正在尝试从列中提取项目的物理尺寸,目前我的正则表达式工作正常。我得到了帮助 here
现在唯一的问题是正则表达式不包含点或逗号
我目前的正则表达式:
'(\d{1,3}\s*[xX*]\s*\d{1,3}(?:\s*[xX*]\s*\d{1,3})?)'
它适用于:120 x 80 x 100
120x80
120 x 80
120X80x100
120*80 * 100
现在我还需要它来查找 [,.]120,3x80,9x1003
120.3x80.9
有什么帮助吗?提前致谢
最佳答案
您可以使用
r'\b(\d+(?:[.,]\d+)*\s*[xX*]\s*\d+(?:[.,]\d+)*(?:\s*[xX*]\s*\d+(?:[.,]\d+)*)?)\b'
见 regex demo .细节:
\b
- 一个词边界(
- 第 1 组:\d+
- 一位或多位数字 (?:[.,]\d+)*
- 零次或多次出现 .
或 ,
和一位或多位数字 \s*[xX*]\s*
- x
, X
或 *
用零个或多个空格括起来 \d+(?:[.,]\d+)*
- 一位或多位数字,然后零次或多次出现 .
或 ,
和一位或多位数字 (?:\s*[xX*]\s*\d+(?:[.,]\d+)*)?
- 可选出现 x
, X
或 *
用零个或多个空格括起来,后跟一个或多个数字,然后出现零个或多个 .
或 ,
和一位或多位数字 )
- 第 1 组结束 \b
- 一个词边界关于Python 正则表达式,包括逗号和点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68590366/