正则表达式 学习
文章平均质量分 51
super852
这个作者很懒,什么都没留下…
展开
-
正则表达式语法
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。这里有一些可能会遇到的正则表达式示例:JScriptVBScript匹配/^/[ /t]*$/"^/[ /t]*$"匹配一个空白行。原创 2005-02-24 17:14:00 · 674 阅读 · 0 评论 -
正则表达式中的限定符
有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式支持限定符的概念。这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。下表给出了各种限定符及其含义的说明:字符描述* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。+ 匹配前面的子表达式一次或多次。例如,z原创 2005-02-24 18:00:00 · 2224 阅读 · 0 评论 -
正则表达式中的字符匹配
句点 (.) 匹配一个字符串中任何单个的打印或非打印字符,除了换行符 (/n) 之外。下面的 JScript 正则表达式可以匹配 aac、abc、acc、adc如此等等,同样也可以匹配 a1c、a2c、a-c以及 a#c: /a.c/等价的 VBScript 正则表达式为:"a.c"如果试图匹配一个包含文件名的字符串,其中句点 (.) 是输入字符串的一部分原创 2005-02-24 17:49:00 · 2176 阅读 · 1 评论 -
正则表达式中的非打印字符
有不少很有用的非打印字符,偶尔必须使用。下表显示了用来表示这些非打印字符的转义序列:字符含义/cx匹配由x指明的控制字符。例如, /cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 c 字符。/f匹配一个换页符。等价于 /x0c 和 /cL。/n匹配一个换行符。原创 2005-02-24 17:44:00 · 2757 阅读 · 0 评论 -
正则表达式的优先级顺序
在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先级顺序来求值。下表从最高优先级到最低优先级列出各种正则表达式操作符的优先级顺序:操作符描述/转义符(), (?:), (?=), []圆括号和方括号*, +, ?, {n}, {n,}, {n,m}限定符^, $, /anymetac原创 2005-02-24 17:17:00 · 3437 阅读 · 0 评论 -
使用正则表达式
如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 data?.dat 的模式可以找到下述文件:data1.datdata2.datdatax.datdataN原创 2005-02-24 16:57:00 · 698 阅读 · 0 评论 -
正则表达式的早期起源
正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。1956 年, 一位叫 Stephen Kleene 的数学家在 McCulloch 和 Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就原创 2005-02-24 16:52:00 · 1506 阅读 · 0 评论 -
正则表达式
如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 data?.dat 的模式可以找到下述文件: data1.dat data2.dat原创 2005-02-24 16:50:00 · 919 阅读 · 0 评论 -
今刚学会的,正则表达式的不贪婪匹配。
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",o+? 将匹配单个 "o",而 o+ 将匹配所有 o。原创 2005-02-24 16:48:00 · 1745 阅读 · 0 评论 -
正则表达式中的选择与编组
选择允许使用 | 字符来在两个或多个候选项中进行选择。通过扩展章节标题的正则表达式,可以将其扩充为不仅仅适用于章节标题的表达式。不过,这可没有想象的那么直接。在使用选择时,将匹配| 字符每边最可能的表达式。你可能认为下面的 JScript 和 VBScript 表达式将匹配位于一行的开始和结束位置且后跟一个或两个数字的 Chapter 或 Section:/^Chapter|原创 2005-02-24 18:04:00 · 992 阅读 · 0 评论 -
正则表达式中的定位符
到现在为止,所看到的示例都只考虑查找任何地方出现的章节标题。出现的任何一个字符串 Chapter 后跟一个空格和一个数字可能是一个真正的章节标题,也可能是对其他章节的交叉引用。由于真正的章节标题总是出现在一行的开始,因此需要设计一个方法只查找标题而不查找交叉引用。定位符提供了这个功能。定位符可以将一个正则表达式固定在一行的开始或结束。也可以创建只在单词内或只在单词的开始或结尾处出现的原创 2005-02-24 18:02:00 · 1935 阅读 · 0 评论 -
正则表达式中的特殊字符
有不少元字符在试图对其进行匹配时需要进行特殊的处理。要匹配这些特殊字符,必须首先将这些字符转义,也就是在前面使用一个反斜杠 (/)。下表给出了这些特殊字符及其含义:特殊字符说明$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 /n 或 /r。要匹配 $ 字符本身,请使用 /$。( )原创 2005-02-24 17:24:00 · 869 阅读 · 0 评论 -
正则表达式中的普通字符
普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。最简单的正则表达式是一个单独的普通字符,可以匹配所搜索字符串中的该字符本身。例如,单字符模式 A 可以匹配所搜索字符串中任何位置出现的字母 A。这里有一些单字符正则表达式模式的示例:/a//7//M/等价的 VBScript 单字符正则表达式原创 2005-02-24 17:19:00 · 1251 阅读 · 0 评论 -
建立正则表达式
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与操作符将小的表达式结合在一起来创建更大的表达式。可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式。对 JScript 而言,分隔符为一对正斜杠 (/) 字符。例如:/expression/对 VBScript 而言,则采用一对引号 ("") 来确定正则表达式的边界。例如:"expression"原创 2005-02-24 17:16:00 · 801 阅读 · 0 评论 -
正则表达式中的向后引用
正则表达式一个最重要的特性就是将匹配成功的模式的某部分进行存储供以后使用这一能力。请回想一下,对一个正则表达式模式或部分模式两边添加圆括号将导致这部分表达式存储到一个临时缓冲区中。可以使用非捕获元字符 ?:, ?=, or ?! 来忽略对这部分正则表达式的保存。所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区编号从 1 开始,连续编号直至原创 2005-02-24 18:06:00 · 5308 阅读 · 0 评论