正则表达式

合集下载

常用的正则表达式

常用的正则表达式

常用的正则表达式整理1、非负整数:^\d+$2、正整数:^[0-9]*[1-9][0-9]*$3、非正整数:^((-\d+)|(0+))$4、负整数:^-[0-9]*[1-9][0-9]*$5、整数:^-?\d+$6、非负浮点数:^\d+(\.\d+)?$7、正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)) $8、非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$9、负浮点数:^(-((正浮点数正则式)))$10、英文字符串:^[A-Za-z]+$11、英文大写串:^[A-Z]+$12、英文小写串:^[a-z]+$13、英文字符数字串:^[A-Za-z0-9]+$14、英数字加下划线串:^\w+$15、E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$16、URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$17、邮政编码:^[1-9]\d{5}$18、中文:^[\u0391-\uFFE5]+$19、电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$ 20、手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$21、双字节字符(包括汉字在内):^\x00-\xff22、匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数)23、匹配HTML标记:<(.*)>.*<\/\1>|<(.*) \/>24、匹配空行:\n[\s| ]*\r25、提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?26、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*27、提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?28、提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)29、提取信息中的中国手机号码:(86)*0*13\d{9}30、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}31、提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}32、提取信息中的中国邮政编码:[1-9]{1}(\d+){5}33、提取信息中的浮点数(即小数):(-?\d*)\.?\d+34、提取信息中的任何数字:(-?\d*)(\.\d+)?35、IP:(\d+)\.(\d+)\.(\d+)\.(\d+)36、电话区号:/^0\d{2,3}$/37、腾讯QQ号:^[1-9]*[1-9][0-9]*$38、帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$匹配中文字符的正则表达式:[\u4e00-\u9fa5]匹配双字节字符(包括汉字在内):[^\x00-\xff]匹配空行的正则表达式:\n[\s| ]*\r匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 匹配首尾空格的正则表达式:(^\s*)|(\s*$)匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S *)?$匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$下表是元字符及其在正则表达式上下文中的行为的一个完整列表:\将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。

正则表达式150种表达方式

正则表达式150种表达方式

正则表达式150种表达方式1、删除所有数字。

只要查找:\d就OK。

为了不留空行:替换处:\d2、删除所有英文字母。

只要查找:\a就OK。

为了不留空行:替换处:\d3、删除除换行符以外的所有。

只要查找:. 为了不留空行:替换处:\d4、既删除英文字母又删除数字。

只要查找:\w。

为了不留空行:替换处:\d5、删除数字加字母加等于(如:3a=或3zz=)只要查找:\d+\a+\=。

为了不留空行:替换处:\d6、删除换行。

只要查找:$。

替换处:\d(还原查找:\a+=\f。

替换:\0\n)。

如在换行后加一空格,查找:(\a)$。

替换:\0 \d。

7、删除空行只要查找:^$。

为了不留空行:替换处:\d8、删除首尾空格。

只要查找:^\s*|\s*$就OK9、删除行前数字及顿号。

只要查找:\d+、替换为空10、删除末尾标点符号。

只要查找:\P+$|\P+\s+$,“|”前面是没有空格的,“|”后面有空格,P后的加是为了……而用的。

11、删除末尾空格。

只要查找:\s+$。

替换为空。

12、删除第一个字如:“的我们”中的“的”只要查找:^\的。

13、删除第几个字。

查找:查找:^().(.+)。

替换:\1\2。

去掉前面的拼音:查找:^\a+替换为空。

第一个括号里可加“.”且可变。

14、删含的。

查:.*的.*替:\d。

的头查:.*=的.*替:\d。

的尾查:\a.*\c.*的$替:\d(留它不匹配)●删非的行查:^[^的]+$替:\d15、删除几码以上的码查:^(...)...替:\1。

删第几位码。

查:^(...).(.+)替:\1\2(变成\1,\2则其位则改成,了)首括号的.可变。

16、删除各类型的几字词,但必须是码前词后或纯词。

三字词:查找:^\~f{}\f{3}$替换:\d。

替换:\d “3”可以改。

17、删除11字词及其以上的词条查找(自定义格式):\a{}\=(\c|\P|\p){11,}。

替换:\d。

11可改。

《正则表达式》课件

《正则表达式》课件

06
CATALOGUE
正则表达式的扩展与优化
正则表达式的扩展(如Unicode、命名组等)
Unicode支持
正则表达式内置了对Unicode字符集 的支持,可以使用诸如`uXXXX`的语 法来表示任意Unicode字符。
命名组
通过使用命名组,可以将匹配的子模 式进行有意义的命名,方便后续引用 和处理。
正则表达式在线测试工具是一种方便快捷的工具,用于测试 和验证正则表达式的正确性。通过在线测试工具,用户可以 输入正则表达式和测试字符串,并实时查看匹配结果,从而 快速定位问题并进行调整。
常用的正则表达式在线测试工具包括Regex101、RegExr、 RegexPal等。这些工具通常提供丰富的正则表达式语法高亮 显示、匹配模式选择、可视化匹配过程等功能,帮助用户更 好地理解和使用正则表达式。
字符串分割
总结词
正则表达式还可以用于字符串的分割操 作,将一个字符串按照特定的模式分割 成多个部分。
VS
详细描述
在字符串分割中,正则表达式可以用来将 一个字符串按照特定的模式分割成多个部 分。例如,可以使用正则表达式来将一个 包含逗号分隔的字符串分割成多个独立的 元素,或者将一个包含特定分隔符的字符 串分割成多个段落或行。
《正则表达式》 PPT课件
目录
• 正则表达式概述 • 正则表达式的语法规则 • 正则表达式的应用实例 • 正则表达式的常见问题与解决方案 • 正则表达式的工具与库 • 正则表达式的扩展与优化
01
CATALOGUE
正则表达式概述
什么是正则表达式
总结词
正则表达式是一种用于描述字符串中模式的强大工具。
04
CATALOGUE
正则表达式的常见问题与解决方案

正数的正则表达式

正数的正则表达式

正数的正则表达式知识点全面总结一、正则表达式的概念正则表达式(Regular Expression,简称regex或regexp)是一种强大的文本处理工具,它提供了一种灵活而高效的方式来搜索、匹配和替换文本中的特定模式。

正则表达式由一系列普通字符和特殊字符组成,这些特殊字符赋予了正则表达式强大的模式匹配能力。

二、正数的定义在数学中,正数是指大于0的实数,包括所有正整数、正分数和正小数。

正数在日常生活和科学计算中都非常常见,比如长度、重量、温度、时间等都是以正数来表示的。

三、正数的正则表达式要匹配正数,这个正则表达式的含义是:表示匹配字符串的开始位置。

表示匹配一个或多个数字字符。

这里使用`+`表示至少匹配一次,这样可以确保匹配的数字部分至少有一位。

表示匹配零次或一次小数点。

因为正数可以有小数部分,也可以没有,所以这里使用`\.?`来表示小数点的可选性。

表示匹配零次或多次数字字符。

这里使用`*`表示匹配次数不限,这样可以确保匹配的小数部分可以有任意位数。

表示匹配字符串的结束位置。

这个正则表达式可以匹配包括整数和小数在内的所有正数,但不会匹配负数或带有符号的数。

四、正则表达式的元字符和限定符1. 元字符:正则表达式中的特殊字符,用于表示特定的匹配规则。

`.`:匹配除了换行符以外的任意单个字符。

`*`:匹配前面的子表达式零次或多次。

`+`:匹配前面的子表达式一次或多次。

`?`:匹配前面的子表达式零次或一次。

`{n}`:匹配前面的子表达式恰好n次。

`{n,}`:匹配前面的子表达式至少n次。

`{n,m}`:匹配前面的子表达式至少n次,但不超过m 次。

`^`:匹配字符串的开始位置。

`$`:匹配字符串的结束位置。

`\d`:匹配任意数字字符,等价于`[0-9]`。

`\D`:匹配任意非数字字符,等价于`[^0-9]`。

`\s`:匹配任意空白字符,包括空格、制表符、换页符等。

`\S`:匹配任意非空白字符。

`\w`:匹配任意字母、数字或下划线字符,等价于`[a-zA-Z0-9_]`。

正则表达式

正则表达式

正则表达式(I)正则表达式是由英文词语regular expression翻译过来的,就是符合某种规则的表达式。

正则表达式在软件开发中应用非常广泛,例如,找出网页中的超链接,找出网页中的email 地址,找出网页中的手机号码,判断输入的内容是否全部是数字,是否满足某种日期格式等等。

可以将正则表达式理解为一种对文字进行模糊匹配的语言,它用一些特殊的符号(称为元字符)来代表具有某种特征的一组字符以及该组字符重复出现的次数。

例如,对于正则表达式“\d{5}(-\d{4})?”,\d就是一个元字符,它表示一个数字字,{5}表示紧靠它前面的元素项连续重复5次,\d和{5}的组合\d{5}就表示匹配任意连续的5个数字字符;-\d{4}匹配的是一个连字号(-)后加上4个任意的数字,(-\d{4})?表示连字号(-)和后面的4个数字可有可无。

对于整个正则表达式“\d{5}(-\d{4})?”,表示要么是5个连续的数字字符,要么是5个连续的数字后加上一个连字号(-)、再加上4个连续的数字组成的10个字符。

正则表达式中的圆括号除了能将多个元素组合成一个可统一操作的组合项外,它所括起来的表达式部分还成为了一个子匹配(也叫子表达式),也就是说,我们可以用圆括号在一个长的正则表达式中划分出子表达式。

这样,除了可以得到整个正则表达式的匹配结果外,还可以单独得到每个子表达式部分所匹配的结果。

要灵活运用正则表达式,必须了解其中各种元字符的功能。

元字符从功能上大致分为:限定符、选择匹配符、分组组合和反向引用符、特殊字符、字符匹配符、定位符。

限定符用于指定其前面的字符或组合项连续出现多少次,下面是各种限定符及其含义:●{n} 规定前面的元素或组合项的连续出现n 次●{n,} 规定前面的元素或组合项至少连续出现n 次●{n,m } 规定前面的元素或组合项至少连续出现n 次,至多连续出现m 次●+ 规定前面的元素或组合项必须出现一次或连续多次,等效于{1,}●* 规定前面的元素或组合项可以出现零次或连续多次,等效于{0,}●? 规定前面的元素或组合项出现零次或一次,等效于{0,1}默认情况下,正则表达式使用最长(也叫贪婪)匹配原则。

20个常用的正则表达式 单字母

20个常用的正则表达式 单字母

正则表达式(Regular Expression)是一种用于匹配字符串的强大工具。

它通过使用特定的符号和字符来描述和匹配一系列字符串,能够满足我们在处理文本时的各种需求。

在这篇文章中,我们将深入探讨20个常用的单字母正则表达式,并通过实例来展示它们的使用方法。

1. \b在正则表达式中,\b表示单词的边界。

它可以用来匹配单词的开头或结尾,用于查找特定单词而不是单词的一部分。

2. \d\d表示任意一个数字字符。

它可以用来匹配任何数字,例如\d+可以匹配一个或多个数字字符。

3. \w\w表示任意一个字母、数字或下划线字符。

它可以用来匹配单词字符,例如\w+可以匹配一个或多个单词字符。

4. \s\s表示任意一个空白字符,包括空格、制表符、换行符等。

它可以用来匹配空白字符,例如\s+可以匹配一个或多个空白字符。

5. \.\.表示匹配任意一个字符,包括标点符号和空格等。

它可以用来匹配任意字符,例如\.可以匹配任意一个字符。

6. \A\A表示匹配字符串的开始。

它可以用来确保匹配发生在字符串的开头。

7. \Z\Z表示匹配字符串的结束。

它可以用来确保匹配发生在字符串的结尾。

8. \b\b表示单词的边界。

它可以用来匹配单词的开头或结尾,用于查找特定单词而不是单词的一部分。

9. \D\D表示任意一个非数字字符。

它可以用来匹配任何非数字字符。

10. \W\W表示任意一个非单词字符。

它可以用来匹配任何非单词字符。

11. \S\S表示任意一个非空白字符。

它可以用来匹配任何非空白字符。

12. \[\[表示匹配方括号。

它可以用来匹配包含在方括号内的字符。

13. \]\]表示匹配方括号。

它可以用来匹配包含在方括号内的字符。

14. \(\(表示匹配左括号。

它可以用来匹配包含在左括号内的字符。

15. \)\)表示匹配右括号。

它可以用来匹配包含在右括号内的字符。

16. \{\{表示匹配左花括号。

它可以用来匹配包含在左花括号内的字符。

17. \}\}表示匹配右花括号。

正则表达式定义

正则表达式定义

正则表达式定义正则表达式(regular expression_r_r_r)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

列目录时,dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。

正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

3.1 普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。

这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。

3.2 非打印字符3.3 特殊字符所谓特殊字符,就是一些有特殊含义的字符,如上面说的”*.txt”中的*,简单的说就是表示任何字符串的意思。

如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\。

ls \*.txt。

正则表达式有以下特殊字符。

构造正则表达式的方法和创建数学表达式的方法一样。

也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。

正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

3.4 限定符限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。

有*或+或?或{n}或{n,}或{n,m}共6种。

*、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。

正则表达式的限定符有:3.5 定位符用来描述字符串或单词的边界,^和$分别指字符串的开始与结束,\b描述单词的前或后边界,\B 表示非单词边界。

不能对定位符使用限定符。

3.6 选择用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。

但用圆括号会有一个副作用,是相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。

正则表达式知识详解

正则表达式知识详解

正则表达式知识详解⼀、什么是正则表达式?1.定义:正则表达式(regular expression)描述了⼀种字符串匹配的模式,可以⽤来检查⼀个串是否含有某种⼦串、将匹配的⼦串做替换或者从某个串中取出符合某个条件的⼦串等。

构造正则表达式的⽅法和创建数学表达式的⽅法⼀样。

也就是⽤多种元字符与运算符可以将⼩的表达式结合在⼀起来创建更⼤的表达式。

正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

2.组成:正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的⽂字模式。

模式描述在搜索⽂本时要匹配的⼀个或多个字符串。

正则表达式作为⼀个模板,将某个字符模式与所搜索的字符串进⾏匹配。

3.何时使⽤:验证——从头到尾完整匹配!查找——只要部分匹配即可!⼆、正则表达式的基本语法和规则1.备选字符集:规定某*⼀位字符*可⽤的备选字符的集合语法:[可选字符列表]强调:1. ⽆论备选字符集包含多少字符,只能选1个2. 必须选1个!⽐如:6位数字的密码[0123456789][0123456789][0123456789][0123456789][0123456789][0123456789]简化:1. 当备选字符连续时,可⽤-表⽰范围的区间⽐如:[0123456789]-->[0-9][0-9][0-9][0-9][0-9][0-9][0-9][a-z]-->1位⼩写字母[A-Z]-->1位⼤写字母[A-Za-z]-->1位字母,⼤⼩写都⾏[0-9a-zA-Z]-->1位字母或数字都⾏反选:[^不能选的字符列表]⽐如:[^47] 强调:^作“除了”使⽤时,只能放在开头2. 预定义字符集:为常⽤的字符集专门提供的简化写法!“\d”-->[0-9]-->1位数字“\w”-->[0-9a-zA-Z_]-->1位字母,数字或_“\s”-->1位空字符:匹配任何空⽩字符,包括空格、制表符、换页符等等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

正则表达式正则表达式(英文:Regular Expression)在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。

在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。

许多程序设计语言都支持利用正则表达式进行字符串操作。

例如,在Perl中就内建了一个功能强大的正则表达式引擎。

正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

基本概念一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串。

例如:Handel、Händel 和Haendel 这三个字符串,都可以由“H(a|ä|ae)ndel”这个模式来描述。

大部分正则表达式的形式都有如下的结构:选择|竖直分隔符代表选择。

例如“gray|grey”可以匹配grey或gray。

数量限定某个字符后的数量限定符用来限定前面这个字符允许出现的个数。

最常见的数量限定符包括“+”、“?”和“*”(不加数量限定则代表出现一次且仅出现一次):+加号代表前面的字符必须至少出现一次。

(1次、或多次)。

例如,“goo+gle”可以匹配google、gooogle、goooogle等;?问号代表前面的字符最多只可以出现一次。

(0次、或1次)。

例如,“colou?r”可以匹配colour 或者color;*星号代表前面的字符可以不出现,也可以出现一次或者多次。

(0次、或1次、或多次)。

例如,“0*42”可以匹配42、042、0042、00042等。

匹配圆括号可以用来定义操作符的范围和优先度。

例如,“gr(a|e)y”等价于“gray|grey”,“(grand)?father”匹配father和grandfather。

上述这些构造子都可以自由组合,因此,“H(ae?|ä)ndel”和“H(a|ae|ä)ndel”是相同的。

精确的语法可能因不同的工具或程序而异。

表达式全集正则表达式有多种不同的风格。

下表是在PCRE中元字符及其在正则表达式上下文中的行为$ 匹配输入字符串的结束位置。

如果设置了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集合,在JScript中则使用$0…$9属性。

要匹配圆括号字符,请使用“\(”或“\)”。

(?:pattern) 匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。

这在使用或字符“(|)”来组合一个模式的各个部分是很有用。

例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。

(?=pattern) 正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。

这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。

预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

(?!pattern) 负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串。

这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“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之前至少有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一、什么是正则表达式正则表达式是一种可以用于模式匹配和替换的强有力的工具。

我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。

此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。

正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,进行信息的验证。

此外,它还能够高效地创建、比较和修改字符串,以及迅速地分析大量文本和数据以搜索、移除和替换文本。

例如:二、基础知识1.1 开始、结束符号(它们同时也属于定位符)我们先从简单的开始。

假设你要写一个正则表达式规则,你会用到^ 和$ 符号,他们分别是行首符、行尾符。

例如:/^d+[0-9]?d+$/1.2 句点符号假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束。

另外,假设有一本英文字典,你可以用正则表达式搜索它的全部内容。

要构造出这个正则表达式,你可以使用一个通配符——句点符号“.”。

这样,完整的表达式就是“t. n”,它匹配“tan”、“ten”、“tin”和“ton”,还匹配“t#n”、“tpn”甚至“t n”,还有其他许多无意义的组合。

这是因为句点符号匹配所有字符,包括空格、Tab字符甚至换行符:1.3 方括号符号为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。

此时,只有方括号里面指定的字符才参与匹配。

也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。

但“Toon”不匹配,因为在方括号之内你只能匹配单个字符:1.4 “或”符号如果除了上面匹配的所有单词之外,你还想要匹配“toon”,那么,你可以使用“|”操作符。

“|”操作符的基本意义就是“或”运算。

要匹配“toon”,使用“t(a|e|i|o|oo)n”正则表达式。

这里不能使用方扩号,因为方括号只允许匹配单个字符;这里必须使用圆括号“()”。

相关文档
最新文档