- 浏览: 177002 次
- 性别:
- 来自: 佛山
文章分类
最新评论
-
yizhl:
非常感谢!
JavaScript的MD5加密 -
wongjingchun:
最近正在学习这方面的东西呢,就看到这个好帖子了,太感谢了
JavaScript的MD5加密 -
xwq18:
谢谢
javascript的消息资源国际化 -
luojiy:
太感谢lz了,
现在我也在学客户端登录要使用javascri ...
JavaScript的MD5加密 -
Firede:
不错,这个JavaScript MD5加密很实用。
JavaScript的MD5加密
非打印字符
字符 | 含义 |
\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。 |
特殊字符
所谓特殊字符,就是一些有特殊含义的字符,如上面说的"*.txt"中的*,简单的说就是表示任何字符串的意思。如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\。ls \*.txt。正则表达式有以下特殊字符。
特别字符 | 说明 |
$ | 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。 |
( ) | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 |
* | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 |
+ | 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 |
. | 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。 |
[ | 标记一个中括号表达式的开始。要匹配 [,请使用 \[。 |
? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 |
\ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。 |
^ | 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。 |
{ | 标记限定符表达式的开始。要匹配 {,请使用 \{。 |
| | 指明两项之间的一个选择。要匹配 |,请使用 \|。 |
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
限定符
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有*或+或?或{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?'。请注意在逗号和两个数之间不能有空格。 |
定位符
用来描述字符串或单词的边界,^和$分别指字符串的开始与结束,\b描述单词的前或后边界,\B表示非单词边界。不能对定位符使用限定符。
选择
用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,是相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。
其中?:是非捕获元之一,还有两个非捕获元是?=和?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。
后向引用
对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区编号从 1 开始,连续编号直至最大 99 个子表达式。每个缓冲区都可以使用 '\n' 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。
可以使用非捕获元字符 '?:', '?=', or '?!' 来忽略对相关匹配的保存。
各种操作符的运算优先级
相同优先级的从左到右进行运算,不同优先级的运算先高后低。各种操作符的优先级从高到低如下:
操作符 | 描述 |
\ | 转义符 |
(), (?:), (?=), [] | 圆括号和方括号 |
*, +, ?, {n}, {n,}, {n,m} | 限定符 |
^, $, \anymetacharacter | 位置和顺序 |
| | “或”操作 |
全部符号解释
字符 | 描述 |
\ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 |
^ | 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 |
$ | 匹配输入字符串的结束位置。如果设置了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)' 能匹配 "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 | 匹配一个单词边界,也就是指单词和空格间的位置。例如, '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 匹配版权符号 (?)。 |
部分例子
正则表达式 | 说明 |
/\b([a-z]+) \1\b/gi | 一个单词连续出现的位置 |
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ | 将一个URL解析为协议、域、端口及相对路径 |
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/ | 定位章节的位置 |
/[-a-z]/ | A至z共26个字母再加一个-号。 |
/ter\b/ | 可匹配chapter,而不能terminal |
/\Bapt/ | 可匹配chapter,而不能aptitude |
/Windows(?=95 |98 |NT )/ | 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。 |
发表评论
-
JavaScript-编程语言中的label
2009-07-20 17:14 91var sum=0,sum2=0; count: for( ... -
javascript的消息资源国际化
2008-12-15 13:42 1424转自:http://rainlife.iteye.com/bl ... -
获取客户端网卡MAC地址
2008-12-15 13:28 1636<!--javascript获取客户端网卡MAC地址和I ... -
JavaScript常用55个经典技巧
2008-12-15 11:46 2321. oncontextmenu="window.e ... -
JavaScript的函数劫持
2008-12-04 21:39 135转自:http://www.pcdog.com/edu/jav ... -
JavaScript常用的窗口函数(showModalDialog,open,confirm)
2008-12-04 20:51 748index.html <html> <hea ... -
JavaScript使用XMLHTTP获得指定页面的源代码
2008-12-04 20:48 306<!DOCTYPE HTML PUBLIC " ... -
JavaScript的MD5加密
2008-12-04 20:44 284211.首先要到http://pajhome.org.uk/cry ... -
JavaScript的面向对象
2008-12-04 20:39 116近几天看《Ajax基础教程》,里面有关于javascript的 ... -
javascript常用技巧
2008-12-04 20:32 961.生成随机数的种子 rnd.today=new Date() ... -
JavaScript的onpropertychange事件
2008-12-03 22:20 390Fires when a property changes o ... -
JSON入门
2008-12-03 21:39 261http://www.json.org/ JSON 即 J ... -
JavaScript技巧收集
2008-12-02 22:43 1171. onBlur:当失去输入焦点后产生该事件 onF ... -
Javascript 操作select控件大全
2008-12-02 22:27 1271判断select选项中 是否存在Value="p ... -
JavaScript获取iframe的内容并生成xml格式字符串
2008-12-01 21:44 921var serialNo = linesWF040300.do ... -
近两个月工作中遇到的JavaScript(简要复习)
2008-12-01 21:32 162(1)JS是区分大小写的~~晕,这个也写上来 (2)onpro ... -
javascript操作xml
2008-10-26 10:02 495xml文件: <?xml version="1 ... -
javascript中的函数调用
2008-10-26 09:11 148昨天工作中发现了javascript中的有以下的特性: 对 ... -
input按钮的事件处理大全
2008-10-01 08:37 987<INPUT onclick=document.all ... -
转载的开发小技巧
2008-09-24 16:26 8481.html中显示分数: ½ & ...
相关推荐
在编程领域,C#语言以其强大的功能和易用性深受开发者喜爱。特别是在处理文本操作时,字符串和正则表达式...通过深入阅读《C#字符串和正则表达式参考手册》,你将能够更全面地理解这两个主题,并将其运用到日常工作中。
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 许多程序设计语言都支持利用...
Tcl/tk 宝典之二 - 正则表达式参考 本资源是 Tcl/tk 进阶资料,主要讲解正则表达式的概念和使用方法,通过作者的实践经验和实例讲解,非常易于理解和应用于实际开发中。 知识点一:正则表达式的历史和应用 * 正则...
3. **语法提示**:提供正则表达式语法的详细提示和参考,帮助用户理解和学习正则表达式中的各种符号和结构,如点号(.)、星号(*)、加号(+)、问号(?)、括号(())、管道符(|)等。 4. **测试集**:允许用户...
总的来说,《正则表达式 必知必会》不仅是一本入门级的教程,也是一本可以伴随程序员成长的参考书。它不仅向读者展示了正则表达式的强大功能,还通过实例教学的方式,帮助读者克服了学习正则表达式的障碍。对于那些...
### 正则表达式基础知识与...对于想要深入学习并掌握正则表达式技术的读者来说,本书无疑是一个非常有价值的参考资料。通过阅读本书,读者不仅可以学到理论知识,还能通过实践案例加深理解,提高解决实际问题的能力。
6. **教程和文档**:提供详细的正则表达式使用指南和C# API参考,帮助用户学习和理解正则表达式。 7. **版本控制**:保存和加载正则表达式模式,便于项目管理。 8. **错误检查**:检测并提示正则表达式中的语法...
3. **经典例程**:内建了各种经典的正则表达式示例,方便学习和参考,有助于开发者快速掌握正则表达式的常见用法。 4. **跨平台**:虽然题目并未明确指出该工具的具体跨平台特性,但通常这意味着它可以在不同的操作...
正则表达式可以跨越不同的操作系统和编程语言使用,因为大多数现代编程语言都支持正则表达式。 正则表达式的核心构成元素是元字符和字符集。元字符具有特殊含义,可用于实现特定的匹配规则。字符集则表示一组字符,...
正则表达式整理汇总,含以下内容 [1]里面在包括一个正则表达式测试小程序 RegexTester.exe [2]正则表达式30分钟入门教程.pdf] [3]正则表达式规则.doc [4]正则表达式30分钟入门教程.mht 自己整理用的,现在...
《正则表达式口袋参考书》是一本专为开发人员和系统管理人员设计的实用工具书。正则表达式,简称正则,是编程语言中用于处理字符串的强大工具,它能够高效地进行模式匹配和文本搜索。这本书以简洁、便携的形式,提供...
正则表达式(Regular ...对于想要在C语言项目中集成正则表达式功能的开发者来说,这是一个宝贵的参考资料。通过学习和使用这些文件,你可以掌握如何利用正则表达式进行复杂的文本处理任务,提升你的C语言编程能力。
在正则表达式的世界里,基础概念包括字符类(如匹配任何数字[\d])、量词(匹配0次或多次*,1次或多次+,至少n次{n}等)、分组与捕获(使用括号()来定义一个子模式)、预查(用^符号否定预查,如[^abc]匹配非abc的...
正则表达式语法参考
4. **分组与反向引用**:使用圆括号 `( )` 对正则表达式的一部分进行分组,可以方便地应用量词或逻辑运算。分组还可以用于反向引用,例如,`\1` 表示对第一个分组匹配的内容的引用。 5. **选择与或**:使用竖线 `|`...
这个合集提供的HTML和Java正则表达式实例,为开发者提供了一个快速参考的工具,帮助他们在开发过程中快速有效地实现数据验证功能。理解并熟练运用这些正则表达式,对于提高代码质量和用户体验都有极大的帮助。在实际...
本书《C#字符串和正则表达式参考手册》详细介绍了.NET Framework处理文本的方式,包括如何在.NET中使用String类和StringBuilder类构建字符串。书中还讨论了字符串与其它数据类型之间转换时遇到的问题,以及如何让...
本文提供了在CAD二次开发软件LISP中应用正则表达式的方法,旨在解决LISP编程中文本编辑的难点,并提供了两个函数的介绍,供开发者参考和使用。 在CAD二次开发软件LISP中应用正则表达式可以解决许多文本编辑的问题,...
6. 学习资源:提供正则表达式的基础教程和参考手册,方便用户学习和查阅。 在实际应用中,正则表达式生成工具可以极大地简化开发过程,避免手动编写和调试正则表达式带来的困扰。无论是新手还是经验丰富的开发者,...
6. **学习资源**:内置正则表达式语法参考,方便用户查阅和学习。 7. **代码生成**:部分工具能生成对应编程语言的代码片段,方便将调试好的正则表达式应用到实际项目中。 在提供的压缩包文件中,我们看到几个...