Python 正则表达式,包括逗号和点
Posted
技术标签:
【中文标题】Python 正则表达式,包括逗号和点【英文标题】:Python Regex including Comma and Dot 【发布时间】:2021-10-05 23:07:54 【问题描述】:我正在尝试从列中提取项目的物理尺寸,目前我的正则表达式工作正常。我得到了帮助here
现在唯一的问题是正则表达式不包含点或逗号
我当前的正则表达式:
'(\d1,3\s*[xX*]\s*\d1,3(?:\s*[xX*]\s*\d1,3)?)'
它适用于:
120 x 80 x 100
120x80
120 x 80
120X80x100
120*80 * 100
现在我还需要它来查找 [,.]
120,3x80,9x1003
120.3x80.9
有什么帮助吗? 提前致谢
【问题讨论】:
【参考方案1】:你可以使用
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
- 单词边界
【讨论】:
感谢@Wiktor!完美运行!以上是关于Python 正则表达式,包括逗号和点的主要内容,如果未能解决你的问题,请参考以下文章
利用notepad++正则表达式将 多个空格 替换为一个逗号
利用notepad++正则表达式将 多个空格 替换为一个逗号