正则表达式例子大全

上传人:M****1 文档编号:510765298 上传时间:2023-12-13 格式:DOC 页数:25 大小:132KB
返回 下载 相关 举报
正则表达式例子大全_第1页
第1页 / 共25页
正则表达式例子大全_第2页
第2页 / 共25页
正则表达式例子大全_第3页
第3页 / 共25页
正则表达式例子大全_第4页
第4页 / 共25页
正则表达式例子大全_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《正则表达式例子大全》由会员分享,可在线阅读,更多相关《正则表达式例子大全(25页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 正则表达式例子验证数字的正则表达式集 验证数字:0-9*$验证n位的数字:dn$验证至少n位数字:dn,$验证m-n位的数字:dm,n$验证零和非零开头的数字:(0|1-90-9*)$验证有两位小数的正实数:0-9+(.0-92)?$验证有1-3位小数的正实数:0-9+(.0-91,3)?$验证非零的正整数:+?1-90-9*$验证非零的负整数:-1-90-9*$验证非负整数(正整数 + 0) d+$验证非正整数(负整数 + 0) (-d+)|(0+)$验证长度为3的字符:.3$验证由26个英文字母组成的字符串:A-Za-z+$验证由26个大写英

2、文字母组成的字符串:A-Z+$验证由26个小写英文字母组成的字符串:a-z+$验证由数字和26个英文字母组成的字符串:A-Za-z0-9+$验证由数字、26个英文字母或者下划线组成的字符串:w+$验证用户密码:a-zA-Zw5,17$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。验证是否含有 %&,;=?$ 等字符:%&,;=?$x22+验证汉字:u4e00-u9fa5,0,$验证Email地址:w+-+.w+)*w+(-.w+)*.w+(-.w+)*$验证InternetURL:http:/(w-+.)+w-+(/w-./?%&=*)?$ ;a-zA-z+:/(w

3、+(-w+)*)(.(w+(-w+)*)*(?S*)?$验证电话号码:(d3,4)|d3,4-)?d7,8$:-正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。验证身份证号(15位或18位数字):d15|d18$验证一年的12个月:(0?1-9|10-2)$ 正确格式为:“01”-“09”和“1”“12”验证一个月的31天:(0?1-9)|(1|2)0-9)|30|31)$ 正确格式为:01、09和1、31。整数:-?d+$非负浮点数(正浮点数 + 0):d+(.d+)?$正浮点数 (0-9+

4、.0-9*1-90-9*)|(0-9*1-90-9*.0-9+)|(0-9*1-90-9*)$非正浮点数(负浮点数 + 0) (-d+(.d+)?)|(0+(.0+)?)$负浮点数 (-(0-9+.0-9*1-90-9*)|(0-9*1-90-9*.0-9+)|(0-9*1-90-9*)$浮点数 (-?d+)(.d+)?VB正则表达式简介如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如

5、 data?.dat 的模式可以找到下述文件:data1.datdata2.datdatax.datdataN.dat如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。data*.dat 可以匹配下述所有文件名:data.datdata1.datdata2.datdata12.datdatax.datdataXYZ.dat尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。早期起源正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和

6、Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。1956 年, 一位叫 Stephen Kleene 的美国数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。 随后,发现可以将这一工作应用于使用Ken Thompson 的计算搜索算法的一些早期研究,Ken Thompson是Unix 的主要发明人。正则表达式的第一个实用应用程序就是 Unix 中的qed 编辑器。如他们所说,剩下的就是众所周知

7、的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。使用正则表达式在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。 使用正则表达式,就可以: 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输

8、入字段中查找特定文字。 例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。另一个说明正则表达式非常有用的示例是一种其字符串处理能力还不为人所知的语言。VBScript 是 Visual Basic 的一个子集,具有丰富的字符串处理功能。与 C 类似的 Visual Basic Scri

9、pting Edition 则没有这一能力。正则表达式给 Visual Basic Scripting Edition 的字符串处理能力带来了明显改善。不过,可能还是在 VBScript 中使用正则表达式的效率更高,它允许在单个表达式中执行多个字符串操作。正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。这里有一些可能会遇到的正则表达式示例:Visual Basic Scripting EditionVBScript匹配/

10、 t*$/ t*$匹配一个空白行。/d2-d5/d2-d5验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。/.*/.*匹配一个 HTML 标记。下表是元字符及其在正则表达式上下文中的行为的一个完整列表:字符描述将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,n 匹配字符 n。n 匹配一个换行符。序列 匹配 而 ( 则匹配 (。匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性, 也匹配 n 或 r 之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,

11、$ 也匹配 n 或 r 之前的位置。*匹配前面的子表达式零次或多次。例如,zo* 能匹配 z 以及 zoo。 * 等价于0,。+匹配前面的子表达式一次或多次。例如,zo+ 能匹配 zo 以及 zoo,但不能匹配 z。+ 等价于 1,。?匹配前面的子表达式零次或一次。例如,do(es)? 可以匹配 do 或 does 中的do 。? 等价于 0,1。nn 是一个非负整数。匹配确定的 n 次。例如,o2 不能匹配 Bob 中的 o,但是能匹配 food 中的两个 o。n,n 是一个非负整数。至少匹配n 次。例如,o2, 不能匹配 Bob 中的 o,但能匹配 foooood 中的所有 o。o1, 等

12、价于 o+。o0, 则等价于 o*。n,mm 和 n 均为非负整数,其中n = m。最少匹配 n 次且最多匹配 m 次。刘, o1,3 将匹配 fooooood 中的前三个 o。o0,1 等价于 o?。请注意在逗号和两个数之间不能有空格。?当该字符紧跟在任何一个其他限制符 (*, +, ?, n, n, n,m) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 oooo,o+? 将匹配单个 o,而 o+ 将匹配所有 o。.匹配除 n 之外的任何单个字符。要匹配包括 n 在内的任何字符,请使用象 .n 的模式。

13、(pattern)匹配pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在Visual Basic Scripting Edition 中则使用 $0$9 属性。要匹配圆括号字符,请使用 ( 或 )。(?:pattern)匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 或 字符 (|) 来组合一个模式的各个部分是很有用。例如, industr(?:y|ies) 就是一个比 industry|industries 更简略的表达式。(?=pattern)正向

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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号