正则表达式入门 正则表达式怎么学
大家好,正则表达式入门相信很多的网友都不是很明白,包括正则表达式怎么学也是一样,不过没有关系,接下来就来为大家分享关于正则表达式入门和正则表达式怎么学的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
正则表达式入门经典的目录
第1章正则表达式概述
1.1什么是正则表达式
1.2可以使用正则表达式做什么
1.3使用过的正则表达式
1.4为什么正则表达式看起来令人生畏
1.5支持正则表达式的语言
1.6替换大量文本
第2章正则表达式工具和使用方法
2.1正则表达式工具
2.2基于语言和平台的工具
2.3使用正则表达式的分析方法
第3章简单的正则表达式
3.1匹配单个字符
3.2匹配可选字符
3.3其他限量操作符
3.4大括号语法
3.5练习
第4章元字符和修饰符
4.1正则表达式的元字符
4.2空白和非空白元字符
4.3修饰符
4.4练习
第5章字符类
5.1字符类概述
5.2在字符类中使用范围
5.3字符类中元字符的含义
5.4对字符类取反
5.5POSIX字符类
5.6练习
第6章字符串.行和词边界
6.1字符串.行和词边界
6.2什么是词
6.3识别词边界
6.4练习
第7章正则表达式中的圆括号
7.1使用圆括号分组
7.2交替选择
7.3捕获圆括号
7.4非捕获的圆括号
7.5反向引用
7.6练习
第8章向前查找和向后查找
8.1为什么需要向前查找和向后查找
8.2向前查找
8.3肯定式向前查找的例子
8.4向后查找
8.5如何匹配位置
8.6练习
第9章正则表达式的灵敏度和特殊性
9.1什么是灵敏度和特殊性
9.2灵敏度和特殊性的平衡
9.3元字符如何影响灵敏度和特殊性
9.4了解数据.灵敏度和特殊性
9.5重新分析StarTrainingCompany的例子
9.6练习
第10章说明和调试正则表达式
10.1说明正则表达式
10.2了解你的数据
10.3创建测试用例
10.4调试正则表达式
第11章在MicrosoftWord中使用正则表达式
11.1用户界面
11.2可用的元字符
11.3例子
11.4搜索和替换的例子
11.5VBA中的正则表达式
11.6练习
第12章在StarOffice/OpenOffice.orgWriter中使用正则表达式..
12.1用户界面
12.2可用的元字符
12.3搜索的例子
12.4搜索和替换的例子
12.5POSIX字符类
12.6练习
第13章通过findstr使用正则表达式
13.1findstr简介
13.2findstr支持的元字符
13.3词边界位置
13.4行开始位置和结束位置
13.5单个文件的例子
13.6多个文件的例子
13.7文件列表的例子
13.8练习
第14章PowerGREP
14.1PowerGREP的界面
14.2PowerGREP支持的元字符
14.3复杂一点的例子
14.4练习
第15章MicrosoftExcel中的通配符
15.1Excel的查找界面
15.2Excel支持的通配符
15.3在记录单中使用通配符
15.4在筛选中使用通配符
15.5练习
第16章SQLServer2000中的正则表达式功能
16.1支持的元字符
16.2在LIKE中使用正则表达式
16.3对字符类取反
16.4使用全文搜索
16.5图像字段中的筛选器
16.6练习
第17章在MySQL中使用正则表达式
17.1MySQL简介
17.2MySQL支持的元字符
17.3使用REGEXP关键字和元字符
17.4社会保险号的例子
17.5练习
第18章正则表达式与MicrosoftAccess
18.1MicrosoftAccess中元字符的用法
18.2Access支持的元字符
18.3使用#元字符
18.4使用#字符匹配日期/时间数据
18.5在Access中使用字符类
18.6练习
第19章JScdpt和JavaScript中的正则表达式
19.1在JavaScript和JScript中使用正则表达式
19.2JavaScript和JScnPt中的元字符
19.3说明JavaScript正则表达式
19.4验证SSN的例子
19.5练习
第20章正则表达式与VBS
20.1RegExp对象及其用法
20.2使用Match对象和Matches集合
20.3VBScript支持的元字
20.4练习
第21章VisualBasic. NET与正则表达式
21.1System.Text.RegularExpressions命名空间
21.2VisualBasic. NET支持的元字符
21.3练习
第22章C#和正则表达式
22.1System.Text.RegularExpressions命名空间中的类
22.2VisualC#.NET支持的元字符
22.3练习
第23章PHP和正则表达式
23.1PHP5.0入门
23.2PHP组件如何支持正则表达式
23.3PHP支持的元字符
23.4练习
第24章W3CXMLSchema中的正则表达式
24.1W3CXMLSchema基础
24.2练习
第25章Java中的正则表达式
25.1java.util.regex包简介
25.2java.util.regex包中支持的元字符
25.3使用String类的方法
25.4练习
第26章Peri中的正则表达式
26.1下载并安装Perl
26.2使用Perl正则表达式的基本条件
26.3使用Perl正则表达式
26.4Perl支持的元字符
26.5在Perl中使用正则表达式匹配模式
26.6一个简单的PerlRegex测试程序
26.7练习
附录练习答案
……
什么是正则表达式举例说明一下
目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。
正则表达式的使用,可以通过简单的办法来实现强大的功能。为了简单有效而又不失强大,造成了正则表达式代码的难度较大,学习起来也不是很容易,所以需要付出一些努力才行,入门之后参照一定的参考,使用起来还是比较简单有效的。
例子: ^.+@.+\\..+$
2.正则表达式的历史
正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch和 Walter Pitts这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956年,一位叫 Stephen Kleene的数学家在 McCulloch和 Pitts早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。
随后,发现可以将这一工作应用于使用 Ken Thompson的计算搜索算法的一些早期研究,Ken Thompson是 Unix的主要发明人。正则表达式的第一个实用应用程序就是 Unix中的 qed编辑器。
如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分
3.正则表达式定义
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
列目录时, dir*.txt或ls*.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。
正则表达式是由普通字符(例如字符 a到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
3.1普通字符
由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。
3.2非打印字符字符含义
\cx匹配由x指明的控制字符。例如,\cM匹配一个 Control-M或回车符。x的值必须为 A-Z或 a-z之一。否则,将 c视为一个原义的'c'字符。
\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。
3.3特殊字符
所谓特殊字符,就是一些有特殊含义的字符,如上面说的"*.txt"中的*,简单的说就是表示任何字符串的意思。如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\。ls\*.txt。正则表达式有以下特殊字符。
特别字符说明
$匹配输入字符串的结尾位置。如果设置了 RegExp对象的 Multiline属性,则$也匹配'\n'或'\r'。要匹配$字符本身,请使用\$。
()标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用\(和\)。
*匹配前面的子表达式零次或多次。要匹配*字符,请使用\*。
+匹配前面的子表达式一次或多次。要匹配+字符,请使用\+。
.匹配除换行符\n之外的任何单字符。要匹配.,请使用\。
[标记一个中括号表达式的开始。要匹配 [,请使用\[。
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配?字符,请使用\?。
\将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如,'n'匹配字符'n'。'\n'匹配换行符。序列'\\'匹配"\",而'\('则匹配"("。
^匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^字符本身,请使用\^。
{标记限定符表达式的开始。要匹配{,请使用\{。
|指明两项之间的一个选择。要匹配|,请使用\|。
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
3.4限定符
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*或+或?或{n}或{n,}或{n,m}共6种。
*、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
正则表达式的限定符有:
字符描述
*匹配前面的子表达式零次或多次。例如,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?'。请注意在逗号和两个数之间不能有空格。
3.5定位符
用来描述字符串或单词的边界,^和$分别指字符串的开始与结束,\b描述单词的前或后边界,\B表示非单词边界。不能对定位符使用限定符。
3.6选择
用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,是相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。
其中?:是非捕获元之一,还有两个非捕获元是?=和?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。
3.7后向引用
对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区编号从 1开始,连续编号直至最大 99个子表达式。每个缓冲区都可以使用'\n'访问,其中 n为一个标识特定缓冲区的一位或两位十进制数。
可以使用非捕获元字符'?:','?=', or'?!'来忽略对相关匹配的保存。
正则表达式入门经典的相关图书
形式语义学基础 [专著]/陈意云编著,合肥,中国科学技术大学出版社,1994.3,7-312-00533-0,5,237页26cm,TP301.2/C49
形式语义学的稳定论域理论/陈仪香著,北京,科学出版社,2003,7-03-011264-4,205页20cm,TP301.2/C497
Combinatorics on Words [专著]:Progress and Perspectives/Edited by Larry J.Cummings,Ontario,Academic Press Canada,1983,0-12-198820-1,ix,405p.21cm,TP301.2/C971
Languages, compilers, and tools for embedded systems:ACM SIGPLAN Workshop LCTES 2000, Vancouver, Canada, June 2000: proceedings/Jack Davidson, Sang Lyul Min(eds.),N.Y.,Tata Institute of Fundamental Research,2001.,3-540-41781-8,viii,220p.fig.,tab.,TP301.2/D252
精通正则表达式:第3版/(美)Jeffrey E.F.Friedl著;余晟译,北京,电子工业出版社,2007,978-7-121-04684-1,515页25cm,TP301.2/F831
正则表达式经典实例/(美)Jan Goyvaerts,(美)Steven Levithan著;郭耀译,北京,人民邮电出版社,2010,978-7-115-22832-1,457页24cm,TP301.2/G722
形式语言与自动机导论:英文版/(美)Peter Linz著,北京,机械工业出版社,2004,7-111-15310-3,15,410页24cm,TP301.2/L610
形式语言与自动机导论/(美)Peter Linz著;孙家骕等译,北京,机械工业出版社,2005,7-111-16788-0,289页26cm,TP301.2/L610
Computer Literacy:Survival kit,for the Apple II,lle Family of Computers/Arthur Luehrmann,Herbert Peckham,Maidenhead,McGraw-Hill Book Co.,1984,0-07-049206-9,xiii,417p.ill.23cm,TP301.2/L926
关于正则表达式入门到此分享完毕,希望能帮助到您。