正则表达式教程
js正则表达式详细教程

js正则表达式详细教程//校验是否全由数字组成[code] function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } [/code]//校验登录名:只能输⼊5-20个以字母开头、可带数字、“_”、“.”的字串[code] function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } [/code]//校验⽤户姓名:只能输⼊1-30个以字母开头的字串[code] function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } }} //校验密码:只能输⼊6-20个字母、数字、下划线 [code] function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } [/code]//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”[code] function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]) {1,12})+$/; if (!patrn.exec(s)) return false return true } [/code]//校验⼿机号码:必须以数字开头,除数字外,可含有“-”[code] function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } [/code]//校验邮政编码[code] function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true } [/code]//校验搜索关键字[code] function isSearch(s) { var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\] [\]\{\}:;'\,.<>?]{0,19}$/; if (!patrn.exec(s)) return false return true } function isIP(s) //by zergling { var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)) return false return true } [/code]正则表达式[code] "^\\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 "^[A-Za-z0-9_]*$" [/code]正则表达式使⽤详解简介简单的说,正则表达式是⼀种可以⽤于模式匹配和替换的强有⼒的⼯具。
正则表达式30分钟入门教程——堪称网上能找到的最好的正则式入门教程

正则表达式30分钟⼊门教程——堪称⽹上能找到的最好的正则式⼊门教程本教程堪称⽹上能找到的最好正则表达式⼊门教程本⽂⽬标30分钟内让你明⽩正则表达式是什么,并对它有⼀些基本的了解,让你可以在⾃⼰的程序或⽹页⾥使⽤它。
如何使⽤本教程最重要的是——请给我30分钟,如果你没有使⽤正则表达式的经验,请不要试图在30秒内⼊门——除⾮你是超⼈ :)别被下⾯那些复杂的表达式吓倒,只要跟着我⼀步⼀步来,你会发现正则表达式其实并没有想像中的那么困难。
当然,如果你看完了这篇教程之后,发现⾃⼰明⽩了很多,却⼜⼏乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的⼈在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。
这⾥只是让你明⽩基本的原理,以后你还需要多练习,多使⽤,才能熟练掌握正则表达式。
除了作为⼊门教程之外,本⽂还试图成为可以在⽇常⼯作中使⽤的正则表达式语法参考⼿册。
就作者本⼈的经历来说,这个⽬标还是完成得不错的——你看,我⾃⼰也没能把所有的东西记下来,不是吗?⽂本格式约定:专业术语元字符/语法格式正则表达式正则表达式中的⼀部分(⽤于分析) 对其进⾏匹配的源字符串对正则表达式或其中⼀部分的说明本⽂右边有⼀些注释,主要是⽤来提供⼀些相关信息,或者给没有程序员背景的读者解释⼀些基本概念,通常可以忽略。
正则表达式到底是什么东西?字符是计算机软件处理⽂字时最基本的单位,可能是字母,数字,标点符号,空格,换⾏符,汉字等等。
字符串是0个或更多个字符的序列。
⽂本也就是⽂字,字符串。
说某个字符串匹配某个正则表达式,通常是指这个字符串⾥有⼀部分(或⼏部分分别)能满⾜表达式给出的条件。
在编写处理字符串的程序或⽹页时,经常会有查找符合某些复杂规则的字符串的需要。
正则表达式就是⽤于描述这些规则的⼯具。
换句话说,正则表达式就是记录⽂本规则的代码。
很可能你使⽤过Windows/Dos下⽤于⽂件查找的通配符(wildcard),也就是*和?。
易语言正则表达式简明教程

正则表达式(regular expression)前言正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。
只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题。
索引1._引子2._正则表达式的历史3._正则表达式定义3.1_普通字符3.2_非打印字符3.3_特殊字符3.4_限定符3.5_定位符3.6_选择3.7_后向引用4._各种操作符的运算优先级5._全部符号解释6._部分例子7._正则表达式匹配规则7.1_基本模式匹配7.2_字符簇7.3_确定重复出现--------------------------------------------------------------------------------1. 引子目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP 等操作系统,PHP,C#,Java等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。
正则表达式的使用,可以通过简单的办法来实现强大的功能。
为了简单有效而又不失强大,造成了正则表达式代码的难度较大,学习起来也不是很容易,所以需要付出一些努力才行,入门之后参照一定的参考,使用起来还是比较简单有效的。
例子: ^.+@.+\\..+$这样的代码曾经多次把我自己给吓退过。
可能很多人也是被这样的代码给吓跑的吧。
继续阅读本文将让你也可以自由应用这样的代码。
注意:这里的第7部分跟前面的内容看起来似乎有些重复,目的是把前面表格里的部分重新描述了一次,目的是让这些内容更容易理解。
2. 正则表达式的历史正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。
Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956 年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。
正则表达式,匹配中文语句

正则表达式是一种用于匹配和操作文本模式的工具。
它使用特定的语法规则来定义搜索模式,以便在文本中查找符合这些规则的文本片段。
以下是一些常见的正则表达式语法和示例:
匹配单个字符:
匹配任意单个字符:.
匹配特定字符:例如,[abc] 将匹配字符a、b 或c。
匹配数字和字母:
匹配任意数字:\d
匹配任意字母或数字:\w
匹配任意字母:\p{L}
匹配重复字符或数字:
重复一次或多次:+
重复零次或多次:*
重复特定次数:例如,{3} 表示重复三次。
匹配特定模式:
匹配以特定字符开头的字符串:^abc 表示匹配以"abc" 开头的字符串。
匹配以特定字符结尾的字符串:abc$ 表示匹配以"abc" 结尾的字符串。
匹配包含特定字符的字符串:例如,[a-z]+ 表示匹配包含一个或多个小写字母的字符串。
转义特殊字符:
使用反斜杠() 来转义特殊字符,例如,\d 表示匹配实际的反斜杠字符而不是特殊含义。
下面是一些示例,演示如何使用正则表达式来匹配中文字符:
匹配单个中文字符:[\u4e00-\u9fa5]
匹配多个中文字符:[\u4e00-\u9fa5]+
匹配以中文字符开头的字符串:^[\u4e00-\u9fa5]
匹配以中文字符结尾的字符串:[\u4e00-\u9fa5]$
请注意,正则表达式的语法可能因语言和工具而异,上述示例适用于大多数常见的情况。
在使用正则表达式时,请务必参考相关文档或工具的语法规范以确保正确使用。
布尔正则表达式教程_概述说明以及解释

布尔正则表达式教程概述说明以及解释1. 引言1.1 概述布尔正则表达式是一种用于处理字符串模式匹配的强大工具。
它能够根据用户定义的规则,对输入的文本进行搜索、替换和验证操作。
不同于传统的正则表达式,布尔正则表达式具有更丰富的逻辑运算符和特殊字符,使得匹配过程更加灵活和精确。
1.2 布尔正则表达式简介布尔正则表达式是由布尔运算符、特殊字符和普通字符组成的字符串模式。
布尔运算符包括与(&&)、或(||)、非(!)等,用于实现多条件的逻辑判断。
特殊字符主要用于表示一些通用或特定格式的文本模式,如数字、字母、空格等。
普通字符则是指除了特殊字符外的其他文本内容。
1.3 目的本篇教程旨在帮助读者全面理解并掌握布尔正则表达式,并通过详细解释和示例说明来讲解其基础知识、使用方法以及高级应用技巧。
同时,我们还将探讨布尔正则表达式在实际场景中的应用,并给出相应的建议和展望。
以上是“1. 引言”部分的内容,它主要对布尔正则表达式进行了概述、简介以及阐明了本篇文章的目的。
2. 布尔正则表达式基础知识2.1 什么是布尔正则表达式布尔正则表达式,又称为布尔模式匹配,是一种用于字符串匹配和处理的工具。
它通过使用特定的语法规则来定义一个模式,并通过该模式来判断目标字符串是否与之匹配。
其中,"布尔"表示结果只有两种可能性:匹配或不匹配。
2.2 基本语法规则- 字符匹配:普通字符可以直接用于匹配相同的字符。
- 单个字符通配符:点号(`.`)表示可以匹配除换行符外的任何单个字符。
- 字符类:方括号(`[]`)内可列出多个字符,表示可以匹配其中任意一个字符。
- 字符范围:在字符类中可以使用连字符(`-`)指定范围,如`[a-z]` 表示小写字母。
- 反义字符类:在方括号内插入`^` 表示反义,即需要排除的字符集合。
- 重复次数控制:- `*` 表示前一个元素可以出现0次或更多次;- `+` 表示前一个元素可以出现1次或更多次;- `?` 表示前一个元素可以出现0次或1次;- `{m}` 表示前一个元素必须出现m次;- `{m,}` 表示前一个元素至少出现m次;- `{m,n}` 表示前一个元素至少出现m次,最多出现n次。
python正则表达式re.search()的基本使用教程

python正则表达式re.search()的基本使⽤教程1 re.search() 的作⽤:re.search会匹配整个字符串,并返回第⼀个成功的匹配。
如果匹配失败,则返回None从源码⾥⾯可以看到re.search()⽅法⾥⾯有3个参数pattern: 匹配的规则,string : 要匹配的内容,flags 标志位这个是可选的,就是可以不写,可以写, ⽐如要忽略字符的⼤⼩写就可以使⽤标志位flags 的主要内容如下flags : 可选,表⽰匹配模式,⽐如忽略⼤⼩写,多⾏模式等,具体参数为:1. re.I 忽略⼤⼩写2. re.L 表⽰特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境3. re.M 多⾏模式4. re.S 即为 . 并且包括换⾏符在内的任意字符(. 不包括换⾏符)5. re.U 表⽰特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库6. re.X 为了增加可读性,忽略空格和 # 后⾯的注释2 demo 练习re.search() 的使⽤2.1 search 简单的匹配import recontent = "abcabcabc"rex = re.search("c", content)print(rex)打印结果如下从内容我们可以看到span(2, 3) 这个应该是对应的下标,所以我们想获取匹配的下标可以使⽤spanmatch 是匹配的内容, 内容为c2.2 获取匹配的下标import recontent = "abcabcabc"rex = re.search("c", content)print(rex.group())打印结果如下2.3 获取匹配的内容 ,使⽤group(匹配的整个表达式的字符串)import recontent = "abcabcabc"rex = re.search("c", content)print(rex.group())打印结果如下注意group 和span 不能同时使⽤, 否则会报错2.4 使⽤标志位忽略匹配的⼤⼩写import recontent = "abcabcabc"rex = re.search("C", content, re.I)print(rex.group())打印结果如下这⾥使⽤⼤写字母C 忽略⼤⼩写之后也能匹配到c 2.5 使⽤search 匹配字符串⾥⾯的数组import recontent = "abc123abc"rex = re.search("\d+", content)print(rex.group())打印结果2.6 search 结合compile 使⽤import recontent = "abc123abc"rex_content = pile("\d+")rex = rex_content.search(content)print(rex.group())打印结果2.7 group 的使⽤import recontent = "abc123def"rex_compile = pile("([a-z]*)([0-9]*)([a-z]*)")rex = rex_compile.search(content)print(rex.group())print(rex.group(0)) # group()和group(0) ⼀样匹配的是整体print(rex.group(1)) # 匹配第⼀个⼩括号的内容print(rex.group(2)) # 匹配第⼆个⼩括号的内容print(rex.group(3)) # 匹配第三个⼩括号的内容打印结果group() ⼩括号⾥⾯不⽌有数字,可以是⾃定的内容如下content = "zhangsanfeng108le"rex_compile = pile("(?P<name>[a-z]*)(?P<age>[0-9]*)")rex_content = rex_compile.search(content)print(rex_content.group())print(rex_content.group("name")) # 这⾥效果等同于group(1)print(rex_content.group("age")) # 这⾥效果等同于group(2)打印结果如下总结到此这篇关于python正则表达式re.search()基本使⽤的⽂章就介绍到这了,更多相关python正则表达式re.search()内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
正则表达式两个或两个以上的空格

正则表达式:两个或两个以上的空格正则表达式是一种用于匹配、查找和替换文本的模式。
在文本处理中,经常会遇到需要匹配空格的情况,而正则表达式则能够很好地解决这个问题。
本文将从浅入深,以“两个或两个以上的空格”为主题,探讨正则表达式的相关知识,并共享个人观点和理解。
1. 什么是正则表达式?正则表达式是一种用于描述、匹配、查找甚至替换字符串的模式。
它由普通字符(例如字母、数字)和特殊字符(称为元字符)组成。
在正则表达式中,空格通常表示为空格字符或者使用特殊元字符来表示。
接下来,我们将深入探讨如何使用正则表达式来匹配“两个或两个以上的空格”。
2. 匹配两个空格在正则表达式中,想要匹配两个空格,可以使用如下的模式:\s{2}。
其中,\s表示空白字符(包括空格、制表符和换行符),{2}表示匹配前面的元素两次。
\s{2}表示匹配两个连续的空白字符。
3. 匹配两个以上的空格如果想要匹配两个以上的空格,可以使用如下的模式:\s{2,}。
其中,{2,}表示匹配前面的元素至少两次。
\s{2,}表示匹配至少两个连续的空白字符。
4. 应用举例举个简单的例子来说明上述的正则表达式如何应用于真实的文本匹配。
假设我们有一段文本:“Hello world”,那么正则表达式\s{2}将匹配到“Hello world”中的两个空格;而正则表达式\s{2,}将匹配到“Hello world”中的两个以上的空格。
5. 总结与回顾通过本文的介绍,我们了解了如何使用正则表达式来匹配“两个或两个以上的空格”。
正则表达式能够帮助我们很好地处理文本中的空格,提高文本处理的效率。
使用正则表达式也需要结合实际情况进行灵活运用,以达到最佳的匹配效果。
6. 个人观点与理解我个人认为,正则表达式是文本处理中非常有用的工具之一。
对于匹配空格这样的简单任务,正则表达式能够快速、准确地完成。
但是需要注意的是,正则表达式在复杂匹配时可能会变得复杂难懂,需要谨慎使用。
webstorm正则表达式用法教程

webstorm正则表达式用法教程WebStorm中的正则表达式(Regular Expression)是一种强大的文本处理工具,它使用特定的模式来匹配、查找、替换文本中的字符序列。
下面是一个WebStorm中使用正则表达式的简单教程:1.打开WebStorm并创建或打开一个项目:首先,启动WebStorm并打开你希望在其中使用正则表达式的项目。
2.打开查找/替换功能:在WebStorm中,你可以通过按Ctrl+F (在Mac上为Cmd+F)来打开“查找”对话框。
如果你想在找到的内容上进行替换,可以同时按Ctrl+R(在Mac上为Cmd+R)打开“替换”对话框。
3.启用正则表达式:在“查找”或“替换”对话框中,你会看到一个名为“正则表达式”(Regex)的复选框。
勾选这个复选框以启用正则表达式功能。
4.编写正则表达式:在“查找”或“替换”字段中,你可以开始编写你的正则表达式。
正则表达式由一系列特殊字符和模式组成,用于匹配文本中的特定模式。
例如,.匹配任何单个字符(除了换行符),*匹配前面的字符0次或多次,\d匹配任何数字等。
5.测试正则表达式:在编写正则表达式时,你可以通过点击“查找下一个”按钮来测试你的表达式是否按预期工作。
如果表达式匹配到文本,那么匹配的文本将会被高亮显示。
6.替换文本:如果你希望替换匹配到的文本,可以在“替换为”字段中输入你想要替换成的文本,然后点击“替换”或“替换全部”按钮。
7.关闭查找/替换对话框:完成查找和替换操作后,你可以点击对话框上的“关闭”按钮来关闭它。
请注意,正则表达式的语法和用法可能非常复杂,需要一些时间来学习和实践。
如果你对正则表达式的具体语法或用法有疑问,我建议你查阅相关的文档或教程,或者向有经验的开发者寻求帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正则表达式教程早期起源正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。
Warren McCulloc h 和Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956 年, 一位叫Stephen Kleene 的数学家在McCulloch 和Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。
正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。
随后,发现可以将这一工作应用于使用Ken Thompson 的计算搜索算法的一些早期研究,K en Thompson 是Unix 的主要发明人。
正则表达式的第一个实用应用程序就是Unix 中的qed 编辑器。
如他们所说,剩下的就是众所周知的历史了。
从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。
正则表达式如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。
不过,它们并不是您想象的那么新奇。
请回想一下在硬盘上是如何查找文件的。
您肯定会使用? 和* 字符来帮助查找您正寻找的文件。
? 字符匹配文件名中的单个字符,而* 则匹配一个或多个字符。
一个如'data?.dat' 的模式可以找到下述文件:data1.datdata2.datdatax.datdataN.dat如果使用* 字符代替? 字符,则将扩大找到的文件数量。
'data*.dat' 可以匹配下述所有文件名:data.datdata1.datdata2.datdata12.datdatax.datdataXYZ.dat尽管这种搜索文件的方法肯定很有用,但也十分有限。
? 和* 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。
使用正则表达式在典型的搜索和替换操作中,必须提供要查找的确切文字。
这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。
使用正则表达式,就可以:∙测试字符串的某个模式。
例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。
这称为数据有效性验证。
∙替换文本。
可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
∙根据模式匹配从字符串中提取一个子字符串。
可以用来在文本或输入字段中查找特定文字。
例如,如果需要搜索整个web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或HTML 格式化标记。
用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。
然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。
另一个说明正则表达式非常有用的示例是一种其字符串处理能力还不为人所知的语言。
VBScript 是Visual Basic 的一个子集,具有丰富的字符串处理功能。
与C 类似的Jscript 则没有这一能力。
正则表达式给JScript 的字符串处理能力带来了明显改善。
不过,可能还是在VBScript 中使用正则表达式的效率更高,它允许在单个表达式中执行多个字符串操作。
正则表达式语法一个正则表达式就是由普通字符(例如字符a 到z)以及特殊字符(称为元字符)组成的文字模式。
该模式描述在查找文字主体时待匹配的一个或多个字符串。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
这里有一些可能会遇到的正则表达式示例:JScript VBScript 匹配/^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行。
/\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。
/<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" 匹配一个HTML 标记。
下表是元字符及其在正则表达式上下文中的行为的一个完整列表:字符描述\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。
例如,'n' 匹配字符"n"。
'\n' 匹配一个换行符。
序列'\\' 匹配"\" 而"\(" 则匹配"("。
^ 匹配输入字符串的开始位置。
如果设置了RegExp对象的Multili ne属性,^ 也匹配'\n' 或'\r' 之后的位置。
$ 匹配输入字符串的结束位置。
如果设置了RegExp对象的Multili ne属性,$ 也匹配'\n' 或'\r' 之前的位置。
* 匹配前面的子表达式零次或多次。
例如,zo* 能匹配"z" 以及"zo o"。
* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。
例如,'zo+' 能匹配"zo" 以及"zoo",但不能匹配"z"。
+ 等价于{1,}。
? 匹配前面的子表达式零次或一次。
例如,"do(es)?" 可以匹配"do"或"does" 中的"do" 。
? 等价于{0,1}。
{n} n是一个非负整数。
匹配确定的n次。
例如,'o{2}' 不能匹配"Bo b" 中的'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并获取这一匹配。
所获取的匹配可以从产生的Matc hes 集合得到,在VBScript 中使用SubMatches集合,在JScript 中则使用$0…$9属性。
要匹配圆括号字符,请使用'\(' 或'\)'。
(?:pattern) 匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
这在使用"或" 字符(|) 来组合一个模式的各个部分是很有用。
例如,'industr(?:y|ies) 就是一个比'industry|industries' 更简略的表达式。
(?=pattern) 正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。
这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
例如,'Windows (?=95|98|NT|2000)' 能匹配"Windows 2000" 中的"Windows" ,但不能匹配"Windows 3.1" 中的"Windows"。
预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern) 负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串。
这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
例如'Windows (?!95|98|NT|2000)' 能匹配"Windows 3.1" 中的"Windows",但不能匹配"Windows 2000" 中的"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 匹配一个单词边界,也就是指单词和空格间的位置。