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

【讨论】:

感谢@Wiktor!完美运行!

以上是关于Python 正则表达式,包括逗号和点的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式:允许逗号分隔的字符串,包括字符和非字符

正则表达式验证小数前后的数字,不包括逗号

利用notepad++正则表达式将 多个空格 替换为一个逗号

利用notepad++正则表达式将 多个空格 替换为一个逗号

如何仅匹配两个点之间的数字,不包括使用正则表达式的点[重复]

如何使用正则表达式获取特定字符之后的所有字符,例如逗号 (",")