当前位置:文档之家› 正则表达式入门正则表达式 学习参考 推荐

正则表达式入门正则表达式 学习参考 推荐

正则表达式入门正则表达式 学习参考 推荐
正则表达式入门正则表达式 学习参考 推荐

正则表达式语言 - 快速参考

正则表达式语言?-?快速参考 正则表达式是正则表达式引擎尝试匹配输入文本的一种模式。?模式由一个或多个字符文本、运算符或构造组成。 字符转义 正则表达式中的反斜杠字符?(\)?指示其后跟的字符是特殊字符(如下表所示),或应按原义解释该字符。?有关更多信息,请参见正则表达式中的字符转义。

字符类 字符类与一组字符中的任何一个字符匹配。?字符类包括下表中列出的语言元素。?有关更多信息,请参见正则表达式中的字符类。

定位点 定位点或原子零宽度断言会使匹配成功或失败,具体取决于字符串中的当前位置,但它们不会使引擎在字符串中前进或使用字符。?下表中列出的元字符是定位点。?有关更多信息,请参见正则表达式中的定位点。 分组构造描述了正则表达式的子表达式,通常用于捕获输入字符串的子字符串。?分组构造包括下表中列出的语言元素。?有关更多信息,请参见正则表达式中的分组构造。

限定符 限定符指定在输入字符串中必须存在上一个元素(可以是字符、组或字符类)的多少个实例才能出现匹配项。?限定符包括下表中列出的语言元素。?有关更多信息,请参见正则表达式中的限定符。

反向引用构造 反向引用允许在同一正则表达式中随后标识以前匹配的子表达式。?下表列出了?.NET?Framework?的正则表达式支持的反向引用构造。?有关更多信息,请参见正则表达式中的反向引用构造。 替换构造用于修改正则表达式以启用?either/or?匹配。?这些构造包括下表中列出的语言元素。?有关更多信息,请参见正则表达式中的备用构造。

替换 替换是替换模式中支持的正则表达式语言元素。?有关更多信息,请参见正则表达式中的替代。?下表中列出的元字符是原子零宽度断言。 正则表达式选项 可以指定控制正则表达式引擎如何解释正则表达式模式的选项。?其中的许多选项可以指定为内联(在正则表达式模式中)或指定为一个或多个?RegexOptions?常量。?本快速参考仅列出内联选项。?有关内联和?RegexOptions?选项的更多信息,请参见文章正则表达式选项。 可通过两种方式指定内联选项: 通过使用杂项构造(?imn s x-imn s x),可以用选项或选项组前的减号?(-)?关闭这些选项。?例如,(?i-mn)?启用不区分大小写

正则表达式常用发发总结

//判断输入内容是否为空 function IsNull(){ var str = document.getElementById('str').value.trim(); if(str.length==0){ alert('对不起,文本框不能为空或者为空格!'); //请将“文本框”改成你需要验证的属性名称! } } //判断日期类型是否为YYYY-MM-DD格式的类型 function IsDate(){ var str = document.getElementById('str').value.trim(); if(str.length!=0){ var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; var r = str.match(reg); if(r==null) alert('对不起,您输入的日期格式不正确!'); //请将“日期”改成你需要验证的属性名称! } } //判断日期类型是否为YYYY-MM-DD hh:mm:ss格式的类型 function IsDateTime(){ var str = document.getElementById('str').value.trim();

if(str.length!=0){ var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}): (\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if(r==null) alert('对不起,您输入的日期格式不正确!'); //请将“日期”改成你需要验证的属性名称! } } //判断日期类型是否为hh:mm:ss格式的类型 function IsTime() { var str = document.getElementById('str').value.trim(); if(str.length!=0){ reg=/^((20|21|22|23|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/ if(!reg.test(str)){ alert("对不起,您输入的日期格式不正确!"); //请将“日期”改成你需要验证的属性名称! } } } //判断输入的字符是否为英文字母

正则表达式

正则表达式 一、什么是这则表达式 正则表达式(regular expressions)是一种描述字符串集的方法,它是以字符串集中各字符串的共有特征为依据的。正则表达式可以用于搜索、编辑或者是操作文本和数据。它超出了java程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则表达式。一般使用的java.util.regex API所支持的正则表达式语法。 二、测试用具 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Regex{ public static void main(String[]args)throws Exception{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); if(br==null){ System.out.println("没有输入任何数据"); System.exit(1); } while(true){ System.out.print("输入表达式:"); Pattern pattern=https://www.doczj.com/doc/848069058.html,pile(br.readLine()); System.out.print("输入字符串:"); Matcher matcher=pattern.matcher(br.readLine()); boolean found=false; while(matcher.find()){ System.out.println("找到子字符串"+matcher.group()+" 开始于索引"+matcher.start()+"结束于索引"+matcher.end()+"\n") found=true; } if(!found){ System.out.println("没有找到子字符串\n"); } } } }

find与grep命令简介及正则表达式

find与grep命令简介及正则表达式写给大家看的Shell脚本编程入门教程索引 两个更为有用的命令和正则表达式 在我们开始学习新的Shell编程知识之前,我们先来看一下两个更为有用的两个命令,这两个命令虽然并不是Shell的一部分,但是在进行Shell编程时却会经常用到.随后我们会来看一下正则表达式. find命令 我们先来看的是find命令.这个命令对于我们用来查找文件时是相当有用的,但是对于Linux新手来说却有一些难于使用,在一定程序是由于他所带的选项,测试,动作类型参数,而且一个参数的执行结果会影响接下来的参数. 在我们深入这些选项和参数之前,我们先来看一个非常简单的例子.假如在我们的机子上有一个文件wish.我们来进行这个操作时要以root身份来运行,这样就可以保证我们可以搜索整个机子: #find/-name wish-print /usr/bin/wish # 正如我们可以想到的,他会打印出搜索到的结果.很简单,是不是? 然而,他却需要一定的时间来运行,因为他也会同时搜索网络上的Window机器上的磁盘.Linux机器会挂载大块的Window机器的文件系统.他也会同时那些位置,虽然我们知道我们要查找的文件位于Linux机器上. 这也正是第一个选项的用武之地.如果我们指定了-mount选项,我们就可以告诉find命令不要搜索挂载的目录.

#find/-mount-name wish-print /usr/bin/wish # 这样我们仍然可以搜索这个文件,但是这一次并没有搜索挂载的文件系统. find命令的完整语法如下: find[path][options][tests][actions] path是一个很简单的部分:我们可以使用绝对路径,例如/bin,或者是使用相对路径,例如..如果我们需要我们还可以指定多个路径,例如find/var/home 主要的一些选项如下: -depth在查看目录本身以前要先搜索目录中的内容 -follow跟随符号链接 -maxdepths N在搜索一个目录时至多搜索N层 -mount(或-xdev)不要搜索其他的文件系统 下面的是一些test的选项.我们可以为find命令指定大量的测试,并且每一个测试会返回真或是假.当find命令工作时,他会考查顺序查找到的文件,并且会在这个文件上按顺序进行他们所定义的测试.如果一个测试返回假,find命令会停止他当前正在考查的文件并继续进行下面的动作.我们在下表中列出的只是一些我们最常用到的测试,我们可以通过查看手册页得到我们可以利用find 命令使用的可能的扩展列表项. -atime NN天以前访问的文件 -mtime NN天以前修改的文件

常用正则表达式

1. 平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2. "^\d+$"//非负整数(正整数+ 0) 3. "^[0-9]*[1-9][0-9]*$"//正整数 4. "^((-\d+)|(0+))$"//非正整数(负整数+ 0) 5. "^-[0-9]*[1-9][0-9]*$"//负整数 6. "^-?\d+$"//整数 7. "^\d+(\.\d+)?$"//非负浮点数(正浮点数+ 0) 8. "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮点数 9. "^((-\d+(\.\d+)?)|(0+(\.0+)?))$"//非正浮点数(负浮点数+ 0) 10. "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"//负浮点数 11. "^(-?\d+)(\.\d+)?$"//浮点数 12. "^[A-Za-z]+$"//由26个英文字母组成的字符串 13. "^[A-Z]+$"//由26个英文字母的大写组成的字符串 14. "^[a-z]+$"//由26个英文字母的小写组成的字符串 15. "^[A-Za-z0-9]+$"//由数字和26个英文字母组成的字符串 16. "^\w+$"//由数字、26个英文字母或者下划线组成的字符串 17. "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"//email地址 18. "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"//url 19. /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 20. /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年 21. "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil 22. /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/ //电话号码 23. "^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}| 1dd|2[0-4]d|25[0-5])$" //IP地址 24. 25. 匹配中文字符的正则表达式:[\u4e00-\u9fa5] 26. 匹配双字节字符(包括汉字在内):[^\x00-\xff] 27. 匹配空行的正则表达式:\n[\s| ]*\r 28. 匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 29. 匹配首尾空格的正则表达式:(^\s*)|(\s*$) 30. 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 31. 匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$ 32. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 33. 匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})? 34. 匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$ 35. 36. 37. 元字符及其在正则表达式上下文中的行为:

正则表达式经典手册

引言 正则表达式(regular expression)就是用一个“表达式”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如表达式“ab+” 描述的特征是“一个 'a' 和任意个'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。 正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。(3)用来替换,比普通的替换更强大。 正则表达式学习起来其实是很简单的,不多的几个较为抽象的概念也很容易理解。之所以很多人感觉正则表达式比较复杂,一方面是因为大多数的文档没有做到由浅入深地讲解,概念上没有注意先后顺序,给读者的理解带来困难;另一方面,各种引擎自带的文档一般都要介绍它特有的功能,然而这部分特有的功能并不是我们首先要理解的。 文章中的每一个举例,都可以点击进入到测试页面进行测试。闲话少说,开始。 1. 正则表达式规则 1.1 普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。(注:下标从0开始还是从1开始,因当前编程语言的不同而可能不同) 举例2:表达式 "bcd",在匹配字符串 "abcde" 时,匹配结果是:成功;匹配到的内容是:"bcd";匹配到的位置是:开始于1,结束于4。 1.2 简单的转义字符 一些不便书写的字符,采用在前面加 "\" 的方法。这些字符其实我们都已经熟知了。

正则表达式教程

正则表达式 学习要点: 1.什么是正则表达式 2.创建正则表达式 3.获取控制 4.常用的正则 假设用户需要在HTML 表单中填写姓名、地址、出生日期等。那么在将表单提交到服 务器进一步处理前,JavaScript 程序会检查表单以确认用户确实输入了信息并且这些信息是 符合要求的。 一.什么是正则表达式 正则表达式(regular expression)是一个描述字符模式的对象。ECMAScript 的RegExp 类 表示正则表达式,而String 和RegExp 都定义了使用正则表达式进行强大的模式匹配和文本 检索与替换的函数。 正则表达式主要用来验证客户端的输入数据。用户填写完表单单击按钮之后,表单就会 被发送到服务器,在服务器端通常会用PHP、https://www.doczj.com/doc/848069058.html, 等服务器脚本对其进行进一步处理。 因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更

好的用户体验。 二.创建正则表达式 创建正则表达式和创建字符串类似,创建正则表达式提供了两种方法,一种是采用new 运算符,另一个是采用字面量方式。 1.两种创建方式 var box = new RegExp('box'); //第一个参数字符串 var box = new RegExp('box', 'ig'); //第二个参数可选模式修饰符 模式修饰符的可选参数 参数含义 i 忽略大小写 g 全局匹配 m 多行匹配 var box = /box/; //直接用两个反斜杠 var box = /box/ig; //在第二个斜杠后面加上模式修饰符 2.测试正则表达式 RegExp 对象包含两个方法:test()和exec(),功能基本相似,用于测试字符串匹配。test() 方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回true,不存 在则返回false。exec()方法也用于在字符串中查找指定正则表达式,如果exec()方法执行成

正则表达式

要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。 字符描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配字符“n”。“\\n”匹配一个换行符。序列“\\”匹配“\”而“\(”则匹配“(”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,“z o+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“d o”。?等价于{0,1}。 {n} n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。 {n,} n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“fo o o ood”中的所有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”在内的任何字符,请使用像“[\s\S]”的模式。

《易语言“正则表达式”详细教程》

《易语言“正则表达式”教程》 本文改编自多个文档,因此如有雷同,不是巧合。 “正则表达式”的应用范围越来越广,有了这个强大的工具,我们可以做很多事情,如搜索一句话中某个特定的数据,屏蔽掉一些非法贴子的发言,网页中匹配特定数据,代码编辑框中字符的高亮等等,这都可以用正则表达式来完成。 本书分为四个部分。 第一部分介绍了易语言的正则表达式支持库,在这里,大家可以了解第一个正则表达式的易语言程序写法,以及一个通用的小工具的制作。 第二部分介绍了正则表达式的基本语法,大家可以用上述的小工具进行试验。 第三部分介绍了用易语言写的正则表达式工具的使用方法。这些工具是由易语言用户提供的,有的工具还带有易语言源码。他们是:monkeycz、零点飞越、寻梦。 第四部分介绍了正则表达式的高级技巧。 目录 《易语言“正则表达式”教程》 (1) 目录 (1) 第一章易语言正则表达式入门 (3) 一.与DOS下的通配符类似 (3) 二.初步了解正则表达式的规定 (3) 三.一个速查列表 (4) 四.正则表达式支持库的命令 (5) 4.1第1个正则表达式程序 (5) 4.2第2个正则表达式例程 (7) 4.3第3个例程 (8) 4.4一个小型的正则工具 (9) 第二章揭开正则表达式的神秘面纱 (11) 引言 (12) 一.正则表达式规则 (12) 1.1普通字符 (12) 1.2简单的转义字符 (13) 1.3能够与“多种字符”匹配的表达式 (14) 1.4自定义能够匹配“多种字符”的表达式 (16) 1.5修饰匹配次数的特殊符号 (17) 1.6其他一些代表抽象意义的特殊符号 (20) 二.正则表达式中的一些高级规则 (21) 2.1匹配次数中的贪婪与非贪婪 (21)

awk正则表达式介绍

awk命令详解 简单使用: awk :对于文件中一行行的独处来执行操作。 awk -F :'{print $1,$4}' :使用‘:’来分割这一行,把这一行的第一第四个域打印出来。 详细介绍: AWK命令介绍 awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息 后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 1.调用awk: 第一种命令行方式,如: awk [-Field-separator] 'commands' input-file(s) 这里commands是真正的awk命令,[-F域分隔符]是可选的,awk默认使用空格分隔, 因此如果要浏览域间有空格的文本,不必指定这个选项,但如果浏览如passwd文件,此文件 各域使用冒号作为分隔符,则必须使用-F选项: awk -F : 'commands' input-file 第二种,将所有awk命令插入一个文件,并使awk程序可执行,然后用awk命令解释器作为脚 本的首行,以便通过键入脚本名称来调用它 第三种,将所有awk命令插入一个单独文件,然后调用,如: awk -f awk-script-file input-file -f选项指明在文件awk-script-file的awk脚本,input-file是使用awk进行浏览 的文件名 2.awk脚本: awk脚本由各种操作和模式组成,根据分隔符(-F选项),默认为空格,读取的内容依次放置到 对应的域中,一行一行记录读取,直到文件尾 2.1.模式和动作

任何awk语句都是由模式和动作组成,在一个awk脚本中可能有许多语句。模式部分决定动作语句何时触发及触发事件。动作即对数据进行的操作,如果省去模式部分,动作将时刻保持执行状态 模式可以是任何条件语句或复合语句或正则表达式,模式包含两个特殊字段BEGIN和END,使用BEGIN语句设置计数和打印头,BEGIN语句使用在任何文本浏览动作之前,之后文本浏览动作依据输入文件开始执行;END语句用来在awk完成文本浏览动作后打印输出文本总数和结尾状态标志,有动作必须使用{}括起来 实际动作在大括号{}内指明,常用来做打印动作,但是还有更长的代码如if和循环looping 语句及循环退出等,如果不指明采取什么动作,awk默认打印出所有浏览出的记录 2.2.域和记录: awk执行时,其浏览标记为$1,$2...$n,这种方法称为域标记。使用$1,$3表示参照第1和第3域,注意这里使用逗号分隔域,使用$0表示使用所有域。例如: awk '{print $0}' temp.txt > sav.txt 表示打印所有域并把结果重定向到sav.txt中 awk '{print $0}' temp.txt|tee sav.txt 和上例相似,不同的是将在屏幕上显示出来 awk '{print $1,$4}' temp.txt 只打印出第1和第4域 awk 'BEGIN {print "NAME GRADE\n----"} {print $1"\t"$4}' temp.txt 表示打信息头,即输入的内容的第一行前加上"NAME GRADE\n-------------",同时内容以tab分开 awk 'BEGIN {print "being"} {print $1} END {print "end"}' temp 同时打印信息头和信息尾 2.3.条件操作符: <、<=、==、!=、>=、~匹配正则表达式、!~不匹配正则表达式

正则表达式经典教程

正则表达式是常见常忘,所以还是记下来比较保险,于是就有了这篇笔记。 希望对大家会有所帮助。J 1.什么是正则表达式 简单的说,正则表达式是一种可以用于文字模式匹配和替换的强有力的工具。是由一系列普通字符和特殊字符组成的能明确描述文本字符串的文字匹配模式。 正则表达式并非一门专用语言,但也可以看作是一种语言,它可以让用户通过使用一系列普通字符和特殊字符构建能明确描述文本字符串的匹配模式。除了简单描述这些模式之外,正则表达式解释引擎通常可用于遍历匹配,并使用模式作为分隔符来将字符串解析为子字符串,或以智能方式替换文本或重新设置文本格式。正则表达式为解决与文本处理有关的许多常见任务提供了有效而简捷的方式。 正则表达式具有两种标准: ·基本的正则表达式(BRE – Basic Regular Expressions) ·扩展的正则表达式(ERE – Extended Regular Expressions)。 ERE包括BRE功能和另外其它的概念。 正则表达式目前有两种解释引擎: ·基于字符驱动(text-directed engine) ·基于正则表达式驱动(regex-directed engine) Jeffery Friedl把它们称作DFA和NFA解释引擎。 约定: 为了描述起来方便,在本文中做一些约定: 1. 本文所举例的所有表达时都是基于NFA解释引擎的。 2. 正则表达式,也就是匹配模式,会简写为Regex。 3. Regex的匹配目标,也就是目标字符串,会简写为String。 4. 匹配结果用会用黄色底色标识。 5. 用1\+1=2 括起来的表示这是一个regex。 6. 举例会用以下格式: Regex Target String Description test This is a test 会匹配test,testcase等 2.正则表达式的起源正则表达式的?祖先?可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。 1956 年, 一位叫 Stephen Kleene 的美国数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为?神经网事件的表示法?的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为?正则集的代数?的表达式,因此采用?正则表达式?这个术语。

RegexBuddy工具的使用教程

RegexBuddy工具的使用教程(图文)1 2009-10-14 12:14 一、什么是RegexBuddy 使用了几天,个人感觉RegexBuddy 是学习正则表达式时的比较好的帮手。它可以容易地建立你想要的正确的正则表达式。清晰地推断他人所写的复杂的正则表达式。它还可以用给出的实例字符串或文件快速地进行测试匹配,从而防止了在实际应用中出现错误。RegexBuddy会在你的源代码中根据你所应用的特殊编程语言,自动生成带有正则表达式的代码段。同时你也可以收集正则表达式到库中,以在未来重新使用。 二、获得RegexBuddy 目前最新的版本是3.2.1(图2-1),于2008年12月9日发布的。可以在https://www.doczj.com/doc/848069058.html,/(RegexBuddy的官网)进行最新版本的下载和正版的购买。 图2-1 RegexBuddy的3.2.1版 三、初步认识RegexBuddy 安装比较简单(略过) 首先,我们先对RegexBuddyg 产生一个整体的初步的认识,而不是设法解释所有的东西。RegexBuddyg是相当易懂的容易的,所以我想经过简单大家应该能够基本正确地使用它。

默认情况下,RegexBuddy会在顶部显示正则表达式和上一次使用的历史,如图 2-1。 图3-1 RegexBuddy的顶部 底部会显示7个选项卡,分别是“Create”、“Test”、“Debug”、“Use”、“Library”、“GREP”、“Forum”(需要注册才能使用此功能),如图2-2。 图3-2 RegexBuddy的底部 如果你的显示器较大,也可以分成两块平铺,你可以单击窗口最右上方工具栏上的“View”按键,在菜单中选择“Side by Side Layout”,这样你可以最大限度的同时查看两个窗口(图3-4)。

正则表达式教程

正则表达式教程 早期起源 正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloc h 和Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。 1956 年, 一位叫Stephen Kleene 的数学家在McCulloch 和Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。 随后,发现可以将这一工作应用于使用Ken Thompson 的计算搜索算法的一些早期研究,K en Thompson 是Unix 的主要发明人。正则表达式的第一个实用应用程序就是Unix 中的qed 编辑器。 如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。 正则表达式 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。 请回想一下在硬盘上是如何查找文件的。您肯定会使用? 和* 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而* 则匹配一个或多个字符。一个如'data?.dat' 的模式可以找到下述文件: data1.dat data2.dat datax.dat dataN.dat 如果使用* 字符代替? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名: data.dat data1.dat data2.dat data12.dat datax.dat dataXYZ.dat 尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和* 通配符的有限能

VC正则表达式的使用

VC正则表达式的使用 2010年9月11日星期六邵盛松 正则表达式是一种对字符进行模糊匹配的一个公式。在数据有效性验证,查找,替换文本中都可以使用正则表达式。 本篇文章主要描述的是使用ATL中两个模板类CAtlRegExp和CAtlREMatchContext。 在使用CAtlRegExp类之前需要添加#include 这个头文件。 RegExp是Regular Expression的缩写 以匹配邮件地址字符串为例说明两个类的使用 该示例更改自https://www.doczj.com/doc/848069058.html,/en-us/library/k3zs4axe(VS.80).aspx CString strRegex=L"({[0-9_]+@[a-zA-Z0-9]+[.][a-zA-Z0-9]+[.]?[a-zA-Z0-9]+})"; CString strInput; strInput=L"admin@https://www.doczj.com/doc/848069058.html,"; CAtlRegExp reRule; wchar_t *wt = (wchar_t *)(LPCTSTR)strRegex; REParseError status = reRule.Parse((const ATL::CAtlRegExp::RECHAR *)wt); if (REPARSE_ERROR_OK != status) { return 0; } CAtlREMatchContext mcRule; wt = (wchar_t *)(LPCTSTR)strInput; if (!reRule.Match((const ATL::CAtlRegExp::RECHAR *)wt,&mcRule)) { AfxMessageBox(L"您输入的邮件地址不合法!"); } else { for (UINT nGroupIndex = 0; nGroupIndex < mcRule.m_uNumGroups; ++nGroupIndex) { const CAtlREMatchContext<>::RECHAR* szStart = 0;

正则表达式

多少年来,许多的编程语言和工具都包含对正则表达式的支持,.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,而且它们也都与未来的Perl 5中的规则表达式兼容。 此外,regexp类还能够完成一些其他的功能,例如从右至左的结合模式和表达式的编辑等。 在这篇文章中,我将简要地介绍System.Text.RegularExpression中的类和方法、一些字符串匹配和替换的例子以及组结构的详细情况,最后,还会介绍一些你可能会用到的常见的表达式。 应该掌握的基础知识 规则表达式的知识可能是不少编程人员“常学常忘”的知识之一。在这篇文章中,我们将假定你已经掌握了规则表达式的用法,尤其是Perl 5中表达式的用法。.NET的regexp类是Perl 5中表达式的一个超集,因此,从理论上说它将作为一个很好的起点。我们还假设你具有了C#的语法和.NET架构的基本知识。 如果你没有规则表达式方面的知识,我建议你从Perl 5的语法着手开始学习。在规则表达式方面的权威书籍是由杰弗里?弗雷德尔编写的《掌握表达式》一书,对于希望深刻理解表达式的读者,我们强烈建议阅读这本书。 RegularExpression组合体 regexp规则类包含在System.Text.RegularExpressions.dll文件中,在对应用软件进行编译时你必须引用这个文件,例如: csc r:System.Text.RegularExpressions.dll foo.cs 命令将创建foo.exe文件,它就引用了System.Text.RegularExpressions文件。 名字空间简介 在名字空间中仅仅包含着6个类和一个定义,它们是: Capture: 包含一次匹配的结果; CaptureCollection: Capture的序列; Group: 一次组记录的结果,由Capture继承而来; Match: 一次表达式的匹配结果,由Group继承而来; MatchCollection: Match的一个序列; MatchEvaluator: 执行替换操作时使用的代理; Regex: 编译后的表达式的实例。 Regex类中还包含一些静态的方法: Escape: 对字符串中的regex中的转义符进行转义; IsMatch: 如果表达式在字符串中匹配,该方法返回一个布尔值; Match: 返回Match的实例; Matches: 返回一系列的Match的方法; Replace: 用替换字符串替换匹配的表达式; Split: 返回一系列由表达式决定的字符串; Unescape:不对字符串中的转义字符转义。

[VIP专享]经典正则表达式QRegExp的解析

QRegExp正则表达式 2010-03-20 17:00 "^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\d+$" //整数 "^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0) "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数 "^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮点数(负浮点数 + 0) "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0- 9]*[1-9][0-9]*)))$" //负浮点数 "^(-?\d+)(\.\d+)?$" //浮点数 "^[A-Za-z]+$" //由26个英文字母组成的字符串 "^[A-Z]+$" //由26个英文字母的大写组成的字符串 "^[a-z]+$" //由26个英文字母的小写组成的字符串 "^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串 "^\w+$" //由数字、26个英文字母或者下划线组成的字符串 "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址 "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url "^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$" // 年-月-日 "^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$" // 月/日/年 "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Email "(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码 "^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0- 5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址 ^([0-9A-F]{2})(-[0-9A-F]{2}){5}$ //MAC地址的正则表达式 ^[-+]?\d+(\.\d+)?$ //值类型正则表达式 QRegExp是Qt的正则表达式类. Qt中有两个不同类的正则表达式. 第一类为元字符.它表示一个或多个常量表达式. 令一类为转义字符,它代表一个特殊字符. 一.元字符 . 匹配任意单个字符.例如, 1.3 可能是1. 后面跟任意字符,再跟3

js正则表达式使用

js正则表达式使用 一,概述 1,正则表达式,可以说是任何一种编程语言都提供的机制,它主要是提供了对字符串的处理能力。 2,正则表达式在页面处理中的使用场景: 1)表单验证。验证某些域符合某种规则,例如邮件输入框必须输入的是邮件、联系电话输入框输入的必须是数字等等 2)处理DOM模型。例如通过表达式定位DOM中的一个对象或一系列对象,一个例子就是定位id属性中含有某个特殊字符的div对象。 3)纯编程逻辑。直接用于编程的逻辑之中。 3,说明:本部分所举的正则表达式的代码片断,都是经过测试的,但有一点需要注意,对于换行的字符串的定义,我们在表述时使用的是类似如下的形式: var str=“It?s is a beautiful city”; 这种形式直接写在JS代码中是错误的,那如何获取具有换行的字符串呢?简单的办法:在textarea中输入文本并换行,然后将该值赋给JS变量即可。例如: var str=document.forms[0].mytextarea.value; 二,语法与使用 1,定义正则表达式 1)定义正则表达式有两种形式,一种是普通方式,一种是构造函数方式。 2)普通方式:var reg=/表达式/附加参数 表达式:一个字符串,代表了某种规则,其中可以使用某些特殊字符,来代表特殊的规则,后面会详细说明。 附加参数:用来扩展表达式的含义,目前主要有三个参数: g:代表可以进行全局匹配。 i:代表不区分大小写匹配。 m:代表可以进行多行匹配。 上面三个参数,可以任意组合,代表复合含义,当然也可以不加参数。 例子: var reg=/a*b/; var reg=/abc+f/g; 3)构造函数方式:var reg=new RegExp(“表达式”,”附加参数”); 其中“表达式”与“附加参数”的含义与上面那种定义方式中的含义相同。 例子: var reg=new RegExp(“a*b”); var reg=new RegExp(“abc+f”,”g”); 4)普通方式与构造函数方式的区别 普通方式中的表达式必须是一个常量字符串,而构造函数中的表达式可以是常量字符串,也可以是一个js变量,例如根据用户的输入来作为表达式参数等等: var reg=new RegExp(document.forms[0].exprfiled.value,”g”);

GAE入门教程

GAE入门教程 1.简介 介绍什么是Google App Engine 2.开发环境 如何下载并安装SDK包,如何配置调试环境 3.Hello World 开始编写Hello world程序,帮助你初步了解Google App Engine程序的编写 4.使用webapp framework 学习使用Web框架来编写Web应用 5.用户系统服务 学习如何判断Google用户登录,获取Goolge登录后的用户信息 6.处理表单数据 处理Form表单,学习Post和Get用法 7.数据存储 学习Google 数据模型以及查询语法GQL 8.使用模版文件 学习使用模板文件来显示网页,让数据和页面分离,加快网站开发速度 9.使用静态文件 学习如何处理CSS,JS,图片等静态文件 10.上传应用程序 发布你已经完成的Web应用到Google服务器上

Google App Engine入门:简介 (本文译自:Google App Engine Getting Started) 欢迎使用Google App Engine! 创建一个Google App Engine应用非常简便,只需要花费你几分钟时间. 你可以很方便的创建你的网站应用:直接上传并分享,不需要进行任何的修改和注释。 在这个指导里,我们将创建一个简单的留言本,让用户可以发表留言。并且支持匿名和Google帐号两种方式发表留言。 这个留言本程序将演示如何使用Google的数据存储,集成Google账户系统,如何使用一个简单的Python Web framework来调试GAE网站。并且还将演示如何使用Django的模版引擎。 接下来... 为了开始编写你的Google App Engine应用程序,你必须先下载Google App Engine软件开发环境。 下一章:Google App Engine软件开发环境.

相关主题
文本预览
相关文档 最新文档