在python re.split()中神秘不受欢迎的分段

时间:2014-09-23 22:00:14

标签: python regex split

我有一个字符串cleanFunc,例如

cleanFunc = "3.04x^2.48"

当我使用

terms = re.split("[+-/*^()]+",cleanFunc)

terms的结果是

terms: ['3', '04x', '2', '48']

我在正则表达式中的任何位置都没有句点.,并且由于某种原因,该函数在扫描句点时会分裂。我怎么能避免这个?我可以添加任何标记以明确避免按句点拆分?我已经尝试通过以下正则表达式来避免删除句点:

terms = re.split("(?<!\d)[.](?!\d)|[+-/*^()]+",cleanFunc)

1 个答案:

答案 0 :(得分:4)

原因是你的&#39; - &#39;在那里签名,表示来自a - b&#39;用ASCII字符,大概包括句号。

更改正则表达式以逃避它,如下所示:

terms = re.split(r"[+\-/*^()]+", cleanFunc)

并且它的工作方式如下。