首页技术正则表达式入门 正则表达式怎么学

正则表达式入门 正则表达式怎么学

编程之家2026-06-13646次浏览

大家好,正则表达式入门相信很多的网友都不是很明白,包括正则表达式怎么学也是一样,不过没有关系,接下来就来为大家分享关于正则表达式入门和正则表达式怎么学的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

正则表达式入门 正则表达式怎么学

正则表达式入门经典的目录

第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

关于正则表达式入门到此分享完毕,希望能帮助到您。

dnf骷髅骑士任务 DNF骷髅骑士css3动画的缩放 css3缩放固定大小