欢迎j进入我的个人知识库,这里大多是我从网络搜集的对我有用的资料,有些是我个人的备忘记录,希望对你也有用! 我关注的:1. 测试技术 ;2. 编码技术 ;3. 数据库技术 ;4. 计算机网络技术 ;5. 计算机原理;

正则表达式

上一篇 / 下一篇  2010-06-29 18:25:06 / 个人分类:测试-设计

正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。

举例来说,正则表达式的一个最为普遍的应用就是用于验证用户在线输入的邮件地址的格式是否正确。如果通过正则表达式验证用户邮件地址的格式正确,用户所填写的表单信息将会被正常处理;反之,如果用户输入的邮件地址与正则表达的模式不匹配,将会弹出提示信息,要求用户重新输入正确的邮件地址。由此可见正则表达式在WEB应用的逻辑判断中具有举足轻重的作用。

基本语法

正则表达式的形式一般如下:

/love/

其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。

为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的元字符

所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

较为常用的元字符包括:“+”“*”,以及“?”,如下:

“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。

“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。

“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次

下面,就让我们来看一下正则表达式元字符的具体应用。

/fo+/

因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的“fool”, “fo”,或者“football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。

/eg*/

因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的“easy”, “ego”,或者“egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。

/Wil?/

因为上述正则表达式中包含元字符,表示可以与目标对象中的“Win”,或者“Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。

除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,

/jim{2,6}/

上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmyjimmmmmy等字符串相匹配。

在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。

\s:用于匹配单个空格符,包括tab键和换行符;

\S:用于匹配除单个空格符之外的所有字符;

\d:用于匹配从09的数字;

\w:用于匹配字母,数字或下划线字符;

\W:用于匹配所有与\w不匹配的字符;

:用于匹配除换行符之外的所有字符。

(说明:我们可以把\s\S以及\w\W看作互为逆运算)

下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。

/\s+/

上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。

/\d000/

如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。

除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符。定位符用于规定匹配模式在目标对象中的出现位置。

较为常用的定位符包括:“^”, “$”, “\b”以及“\B”。其中,

“^”定位符规定匹配模式必须出现在目标字符串的开头,

“$”定位符规定匹配模式必须出现在目标对象的结尾,

\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一

“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。

同样,我们也可以把“^”“$”以及“\b”“\B”看作是互为逆运算的两组定位符。举例来说:

/^hell/

因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以“hell”, “hello”“hellhound”开头的字符串相匹配。

/ar$/

因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以“car”, “bar”“ar”结尾的字符串相匹配。

/\bbom/

因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以“bomb”,“bom”开头的字符串相匹配。

/man\b/

因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以“human”, “woman”“man”结尾的字符串相匹配。

为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如:

/[A-Z]/

上述正则表达式将会与从AZ范围内任何一个大写字母相匹配。

TAG:

 

评分:0

我来说两句

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 106004
  • 日志数: 121
  • 图片数: 1
  • 建立时间: 2007-11-02
  • 更新时间: 2015-06-24

RSS订阅

Open Toolbar