正则表达式:匹配单词和数字与小数

时间:2014-02-23 00:35:16

标签: python regex pattern-matching decimal match

我想匹配单词和数字并删除所有特殊字符,除非它是数字之间的句号。

具体来说,我希望得到 \W+ 的效果,除了不将49.99分成49和99,我想保持为49.99

例如我想要

  

“millie的数学家3-7(win / mac)现在只有49.99。”

分为

  

['millie', 'math', 'house', '3', '7', 'win', 'mac', 'now', '49.99', 'only']

但是现在,只使用 \W+ ,我得到

  

['millie', 'math', 'house', '3', '7', 'win', 'mac', 'now', '49', '99', 'only']

如何保留中间有句点的单词,否则除去特殊字符?

谢谢!

3 个答案:

答案 0 :(得分:1)

如果你知道每次中间会有一个小数,那么这是可行的:

  

(\ d + \ d +)

您可以在此处查看正则表达式:

regexpal.com

答案 1 :(得分:1)

尝试以下

[^\w.]+

不是匹配所有非单词字符,而是匹配不是单词字符/句点的所有内容。

答案 2 :(得分:0)

您应该尝试添加点字符,例如

[\W.]+