您当前位置: 首页 >  WEB技术 >  正则表达式基础知识
2013/1/3 13:14:12 分类:WEB技术

正则表达式基础知识

使用正则表达式简介

正则表达式描述字符模式。通常,正则表达式用于验证文本值是否符合特定模式(例如,验证用户输入的电话号码位数是否正确),或者替换与特定模式匹配的部分文本值。

正则表达式可能非常简单。例如,假设您要确认特定字符串与"ABC"是否匹配,或者要使用某些其它文本替换字符串中出现的每个"ABC"。在这种情况下,您可以使用以下正则表达式,它定义了依次包含字母 A、B 和 C 的模式:

/ABC/

请注意,正则表达式文本是使用正斜杠 (/) 界定的。

正则表达式模式也可能非常复杂,有时候表面上看起来晦涩难懂,例如,以下与有效电子邮件地址匹配的表达式:

/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/

通常,您使用正则表达式在字符串中搜索模式以及替换字符。在这些情况下,您将创建一个正则表达式对象,并将其作为几个 String 类方法之一的参数。下列 String 类方法将正则表达式作为参数:match()、replace()、search() 和split()。有关这些方法的详细信息,请参阅"在字符串中查找模式并替换子字符串"

RegExp 类包含以下方法:test() 和 exec()。有关详细信息,请参阅对字符串使用正则表达式的方法

常见正则表达式任务

正则表达式具有几种常见用途,本章详细介绍了这些用途:

  • 创建正则表达式模式
  • 在模式中使用特殊字符
  • 标识多个字符的序列(如"两位数"或"介于 7 到 10 个字母之间")
  • 标识字母或数字范围中的任何字母(如"从 a 到 m 的任何字母")
  • 标识可能的字符集中的字符
  • 标识子序列(模式内的片断)
  • 基于模式匹配和替换文件

重要概念和术语

以下参考列表包含将会在本章中使用的重要术语:

  • 转义字符 (Escape character):此字符指示应将后面的字符视为元字符,而不是字面字符。在正则表达式语法中,反斜杠字符 () 就是转义字符,因此反斜杠后跟另一个字符是一个特殊代码,而不仅仅是字符本身。
  • 标志 (Flag):此字符指定有关应如何使用正则表达式模式的一些选项,如是否区分大写和小写字符。
  • 元字符 (Metacharacter):在正则表达式模式中具有特殊含义的字符,它与从字面意义上在模式中表示该字符相对。
  • 数量表示符 (Quantifier):一个或几个字符,指示应将模式部分重复多少次。例如,使用数量表示符来指定美国邮政编码应包含 5 个或 9 个数字。
  • 正则表达式 (Regular expression):用于定义字符模式的程序语句,它可用来确认其它字符串是否与该模式匹配,或者替换字符串的一部分。

完成本章中的示例

学习本章的过程中,您可能想要自己动手测试一些示例代码清单。由于本章中的代码清单主要由正则表达式模式组成,因此测试示例涉及以下几个步骤:

  1. 创建一个新的 Flash 文档。
  2. 选择一个关键帧并打开"动作"面板。
  3. 创建一个 RegExp(正则表达式)变量,例如:
    var pattern:RegExp = /ABC/;
  4. 复制示例的模式并将其作为 RegExp 变量的值进行分配。例如,在上一行代码中,模式是等号右侧的代码的一部分,不包含分号 (/ABC/)。
  5. 创建一个或多个包含适合于测试正则表达式的字符串的 String 变量。例如,如果要创建正则表达式来测试有效的电子邮件地址,则创建几个包含有效和无效电子邮件地址的 String 变量:
    var goodEmail:String = "bob@example.com"; var badEmail:String = "5@$2.99";
  6. 添加几行测试 String 变量的代码,以确定它们是否与正则表达式模式匹配。这些将是您希望通过使用 trace()函数或通过写入舞台的文本字段而输出到屏幕上的值。
    trace(goodEmail, " is valid:", pattern.test(goodEmail)); trace(badEmail, " is valid:", pattern.test(badEmail));

    例如,假设 pattern 为有效的电子邮件地址定义了正则表达式模式,前面几行代码将此文本写入"输出"面板:

    bob@example.com is valid: true 5@$2.99 is valid: false

本文由胡金金个人网站整理发布,转载请注明地址:http://www.hujinjin.com/info/111.html

凡标明来源于胡金金个人网站的文章,皆为本站整理发布,若转载此文必须附原文链接,对部分平台更改其文内容当自己原创者,胡金金个人网站将保留其追究权利!
个人资讯推荐
友情链接