正则表达式学习(一)

来源:互联网 发布:python系统变量 name 编辑:程序博客网 时间:2024/05/01 22:18

  今天开始学习正则表达式,理由是遇到了一些合法性输入验证的问题,利用一些if判断的方式来做,有点麻烦,而且这也不是长久之计。在网上 查了很多资料,发现正则表达式是一种可以对输入合法性进行检验的高效的工具。

  摘自书中:

 从较低的层面上说,正则表达式描述的是一串文本的特征。可以用它来验证用户输入的数据,或者也可以用它来检索大量的文本。从较高的层面上来说,正则表达式容许用户掌控他们自己的数据——控制这些数据。让他们为自己服务。掌握正则表达式,就是掌握自己的数据。

  程序很大程度上就是在对数据进行处理,而进入我们程序中的数据我们更应该进行合法性的控制,从数据的源头上进行控制。程序可以简单的这样理解,对用户的输入进行按需求处理,并且返回处理后的数据给用户。那么,问题来了,程序中逻辑处理,效率都没有问题,程序就可以正常运行了吗?

  答案是否定的,因为没有对用户的输入进行约束和控制。所以学习正则表达式的意义很大。

  摘自书中:

正则表达式(Regular Expression)是强大、便捷、高效的文本处理工具。

正则表达式和相关的工具能够让我们以可能未曾想过的方式来解决问题。

  完整的正则表达式是由“元字符”和“文字”组成的。例如:^(From|Subject):。这个正则表达式可以寻找以From:或者Subject:开头的行。其中 ^ ()  | 都属于元字符,而From和Subject属于文字。

  下面是学习后掌握的一些常见的“元字符”:


元字符名称匹配对象.点单个任意字符[..]字符数组列出的任意字符[^..]排除性字符数组未列出的任意字符^脱字符行的起始位置$美元符行的结束位置\<反斜线-小于单词的起始位置\>反斜线-大于单词的结束位置|竖线匹配分隔两边的任意一个表达式()括号限制竖线的作用范围,其他下面是学习后掌握的一些表示重复的“元字符”:

元字符次数下限次数上限含义?无1最多一次*无无任意次+1无至少一次{x,y}xyx到y次实例:编写一个能够表示24小时的正则表达式。

(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]

经过思考后发现,这个不是最优的结果,还可以进行优化,优化后的结果([01]?[0-9]|2[0-3]):[0-5][0-9]

通过上边的小例子可以看出正则表达式的确是强大的。最后引用书中的话结束文章:

一旦你掌握了正则表达式的强大功能,就会感到花在学习上的那些时间真是物超所值。





0 0
原创粉丝点击