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*
- x
、X
或 *
包含零个或多个空格
\d+(?:[.,]\d+)*
- 一位或多位数字,然后零次或多次出现 .
或 ,
和一位或多位数字
(?:\s*[xX*]\s*\d+(?:[.,]\d+)*)?
- x
、X
或 *
的可选出现,包含零个或多个空格,后跟一个或多个数字,然后是零个或多个.
或 ,
和一位或多位数字的出现次数
)
- 第 1 组结束
\b
- 单词边界
我正在尝试从列中提取项目的物理尺寸,目前我的正则表达式工作正常。我得到了帮助
现在唯一的问题是正则表达式不包含点或逗号
我当前的正则表达式:
'(\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
- 单词边界