Python正则匹配数字,python正则表达式匹配整数

  Python正则匹配数字,python正则表达式匹配整数

  在这个例子中,我将向您展示如何避免不熟悉正则表达式的人经常犯的一些错误。我们将尝试构建一个可以匹配浮点数的正则表达式。我们的正则表达式也应该匹配整数,以及整数部分(即0)未给定的浮点数。

  乍一看,下面这个正则表达式似乎达到了预期的效果[-]?[0-9]*\.[0-9]*。这定义了一个浮点数:一个可选的符号(sign),后跟一个可选的数字序列(整数部分),一个可选的点(小数点),以及一个可选的数字序列(小数部分)。

  用单词拼出这个正则表达式,使其更加明显:正则表达式的所有部分都是可选的。这个正则表达式将一个符号(加号或减号)或一个点(小数点)作为有效的浮点数。事实上,它会将空字符串视为有效的浮点数。如果在Perl或PHP之类的脚本语言中使用它来验证用户输入,这个正则表达式将会带来严重的麻烦。

  不转义点也是一个常见错误。转义点将匹配任何字符,包括点。如果不转义点,4.4会被认为是浮点数,4X4也是。

  在创建正则表达式时,更重要的是考虑它不应该匹配什么,而不是应该匹配什么。因为正则表达式引擎比较贪心,上面的正则表达式确实可以匹配到一个正确的浮点数。但是也会匹配很多我们不想要的东西,一定要排除。

  这里有一个更好的尝试:[-]?([0-9]*\.[0-9] [0-9] )。这个正则表达式将匹配一个可选符号(sign),或者零个或多个数字后跟一个点(小数点),后跟一个或多个数字(整数部分可选浮点数),或者一个或多个数字(整数)。

  这是一个更好的定义。由于[0-9]部分的关系,所有匹配都包含至少一个数字。我们成功地排除了不想要的匹配:那些不包含数字的匹配。

  我们可以将正则表达式优化为:[-]?[0-9]*\.[0-9]

  最后,如果要验证一个字符串是否是浮点数,而不是在一个长字符串中寻找浮点数,那么必须在正则表达式中使用锚点:[-]?[0-9]*\.[0-9] $

  随机文章:

  这篇文章发表于2011年4月29日,星期五,22:47,分类为编程。你可以通过RSS 2.0 feed关注这篇文章的评论。

  您可以在您的网站上发表评论或引用通告。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • python查找文件指定内容,python正则匹配文件内容
  • python查找文件指定内容,python正则匹配文件内容,python 文件查找及内容匹配方法
  • python re匹配规则,py正则表达式re应用举例,python正则-re的用法详解
  • ,,python正则表达式最详解
  • 正则匹配整数或者浮点数,python正则表达式匹配浮点数
  • python正则表达式菜鸟教程,python正则表达式re.match
  • Python3 正则表达式,python正则表达式sub替换字符串
  • python正则表达式匹配换行符,python正则表达式匹配换行
  • python正则 非贪婪,正则表达式中表达非贪婪匹配
  • python 正则 替换,python正则化替换
  • python 字符串正则替换,python正则表达式匹配任意字符
  • python正则表达式匹配开头与结尾,菜鸟教程 python 正则表达式
  • python精确匹配字符串,python正则查找所有匹配的字符串
  • python正则表达式提取字符串,python 正则表达式元字符
  • python的正则表达式基础视频讲解,Python正则表达式的实训报告
  • 留言与评论(共有 条评论)
       
    验证码: