动态网站制作指南



当前位置 > 网站建设学院 > 网络编程 > ASP教程 Rss
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket

正则表达式简介(4)


发表日期:2000-8-24


4.正则表达式语法
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文
字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

这里有一些可能会遇到的正则表达式示例:

Visual Basic        VBScript       匹配
Scripting Edition     

/^\[ \t]*$/         "^\[ \t]*$"       匹配一个空白行。

/\d{2}-\d{5}/       "\d{2}-\d{5}"     验证一个ID号码是否由一个2位字,一
                                       个连字符以及一个5位数字组成。

/<(.*)>.*<\/\1>/    "<(.*)>.*<\/\1>"  匹配一个 HTML 标记。


下表是元字符及其在正则表达式上下文中的行为的一个完整列表:

字符                                         描述

\              将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后
               向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n'
               匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。

^               匹配输入字符串的开始位置。如果设置了 RegExp 对象的
                Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。

$               匹配输入字符串的结束位置。如果设置了 RegExp 对象的      
                Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。

*               匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及
                "zoo"。 * 等价于{0,}。

+               匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以
                及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。

?               匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配
                "do" 或 "does" 中的"do" 。? 等价于 {0,1}。

{n}             n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配
                "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。

{n,}            n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配
                "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}'
                等价于 'o+'。'o{0,}' 则等价于 'o*'。

{n,m}           m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹
                配 m 次。刘, "o{1,3}" 将匹配 "fooooood" 中的前三个o。
                'o{0,1}'等价于'o?'。请注意在逗号和两个数之间不能有空格

?               当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,},
                {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的
                匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜
                索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个
                "o",而 'o+' 将匹配所有 'o'。

.               匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任
                何字符,请使用象 '[.\n]' 的模式。

(pattern)       匹配pattern 并获取这一匹配。所获取的匹配可以从产生的
                Matches 集合得到,在VBScript 中使用 SubMatches 集合,在
                Visual Basic Scripting Edition 中则使用 $0…$9 属性。要
                匹配圆括号字符,请使用 '\(' 或 '\)'。

(?:pattern)     匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹
                配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合
                一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就
                是一个比 'industry|industries' 更简略的表达式。

(?=pattern)     正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符
                串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后
                使用。例如,'Windows (?=95|98|NT|2000)' 能匹配"Windows
                2000"中的"Windows",但不能匹配"Windows3 .1"中"Windows"。
                预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹
                配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之
                后开始。

(?!pattern)     负向预查,在任何不匹配Negative lookahead matches the
                search string at any point where a string not matching
                pattern 的字符串开始处匹配查找字符串。这是一个非获取匹
                配,也就是说,该匹配不需要获取供以后使用。例如'Windows
                (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",
                但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字
                符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开
                始下一次匹配的搜索,而不是从包含预查的字符之后开始  

x|y             匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)
                ood' 则匹配 "zood" 或 "food"。  

[xyz]           字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以
                匹配 "plain" 中的 'a'。
  
[^xyz]          负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以
                匹配 "plain" 中的'p'。  

[a-z]           字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹
                配 'a' 到 'z' 范围内的任意小写字母字符。  

[^a-z]          负值字符范围。匹配任何不在指定范围内的任意字符。例如,
                '[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。

\b              匹配一个单词边界,也就是指单词和空格间的位置。例如,
                'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中
                的 'er'。  

\B              匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹
                配 "never" 中的 'er'。

\cx             匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或
                回车符。 x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一
                个原义的 'c' 字符。  

\d              匹配一个数字字符。等价于 [0-9]。  

\D              匹配一个非数字字符。等价于 [^0-9]。  

\f              匹配一个换页符。等价于 \x0c 和 \cL。

\n              匹配一个换行符。等价于 \x0a 和 \cJ。

\r              匹配一个回车符。等价于 \x0d 和 \cM。

\s              匹配任何空白字符,包括空格、制表符、换页符等等。等价于
                [ \f\n\r\t\v]。

\S              匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。

\t              匹配一个制表符。等价于 \x09 和 \cI。

\v              匹配一个垂直制表符。等价于 \x0b 和 \cK。

\w              匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。

\W              匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
  
\xn             匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确
                定的两个数字长。例如, '\x41' 匹配 "A"。'\x041' 则等价
                于 '\x04' & "1"。正则表达式中可以使用 ASCII 编码。.

\num            匹配 num,其中num是一个正整数。对所获取的匹配的引用。
                例如,'(.)\1' 匹配两个连续的相同字符。  

\n              标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n
                个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制
                数字 (0-7),则 n 为一个八进制转义值。

\nm             标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有
                is PReceded by at least nm 个获取得子表达式,则 nm 为后
                向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文
                字 m 的后向引用。如果前面的条件都不满足,若  n 和 m 均为
                八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。

\nml            如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-
                7),则匹配八进制转义值 nml。

\un             匹配 n,其中 n 是一个用四个十六进制数字表示的Unicode字
                符。例如, \u00A9 匹配版权符号 (?)。


关注此文的读者还看过:
·2012-5-17 12:54:33 正则表达式简介(1-3)
·2012-5-17 12:54:10 [视频教程]Dreamweaver与ASP动态网页设计教程 - 第一章HTML基本知识之7 TABLE表格标识
·2012-5-17 12:53:05 WSH实用讲座---第四讲 配置目录权限
·2012-5-17 12:52:17 [视频教程]Dreamweaver与ASP动态网页设计教程 - 第四章 数据库之5 创建数据库连接
·2012-5-17 12:51:10 十天学会ASP之第一天
·2012-5-17 12:49:41 WSH实用讲座:第一讲 获取机器的网络属性配置
·2012-5-17 12:48:59 asp调用js代码
·2012-5-17 12:47:12 手把手教你使用VB来创建ASP组件(4) 
·2012-5-17 12:47:08 初学者必读 ASP运行环境的搭建
站长推荐 PS笔刷下载 在线翻译 系统进程 广告代码
  发表评论
姓 名: 验证码:
内 容:
教程搜索服务
ASP源码推荐
·飞虹通用CMS后台管理系统 v2.0
·uo.Blog日志系统 v1.0
·千博购物系统生成静态HTML企业版
·客齐齐企业内容管理系统 v1.6 英
·乐学迷你BBS(lbbs) v1.5 Build
·QJblog多用户博客 (仿Zone) v2.
·JR SkyGrid v1.4
·ASP搜索引擎抓取
·Hishop网店系统 v5.4.2 beta版
·MM写真网小偷程序 v4.0 正式版
·ASP页面伪静态加速程序 v1.0
·ASP精品屋图形计数器1.0
项目外包信息
·UI界面设计
·产品外观改版设计 15000元
·照明灯具网站设计 10000元
·求长期合作网站设计制作高手
·做B2C网站 20000元
·Android或QT软硬件平台设计(工
·网站首页FLASH
·网站PSD稿设计
·企业网站整站网页设计(美观大气
·网站页面设计及套入程序
·UI界面设计
·产品外观改版设计 15000元
·照明灯具网站设计 10000元
·求长期合作网站设计制作高手
·PPT设计
发布信息 浏览信息
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<ASP教程>的内容


网络编程文章分类
ASP教程
ASP实例
ASP技巧
ASP文摘
PHP教程
PHP技巧
PHP实例
PHP文摘
JSP教程
JSP技巧
JSP实例
JSP文摘
ASP.NET教程
ASP.NET技巧
ASP.NET实例
ASP.NET应用
xml教程
xsl教程
xml技巧
C#教程
C#应用
Delphi教程
Perl教程
Shell教程
Ajax教程
Visual Basic教程
Java教程
J2EE/J2ME教程
C/C++教程
移动解决方案
移动短信技术
移动行业动态
软件工程
WordPress
Android开发
站长工具:Google PR查询|Alexa排名查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|理财工具|黄金价格|购房银行按揭利率计算|汇率查询|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索|酒店预订|机票预订
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2012 www.knowsky.com All rights reserved | 沪ICP备05001343号