Python 包括逗号和点的正则表达式

Python Regex including Comma and Dot

我正在尝试从列中提取项目的物理尺寸,目前我的正则表达式工作正常。我得到了帮助

现在唯一的问题是正则表达式不包含点或逗号

我当前的正则表达式:

'(\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* - xX* 包含零个或多个空格
    • \d+(?:[.,]\d+)* - 一位或多位数字,然后零次或多次出现 ., 和一位或多位数字
    • (?:\s*[xX*]\s*\d+(?:[.,]\d+)*)? - xX* 的可选出现,包含零个或多个空格,后跟一个或多个数字,然后是零个或多个., 和一位或多位数字的出现次数
  • ) - 第 1 组结束
  • \b - 单词边界