没有合适的资源?快使用搜索试试~ 我知道了~
正则表达式简介\正则表达式简介
资源详情
资源评论
资源推荐
如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并
不是您想象的那么新奇。
请回想一下在硬盘上是如何查找文件的。您肯定会使用 和 字符来帮助查找您正寻找的
文件。字符匹配文件名中的单个字符,而 则匹配一个或多个字符。一个如
的模式可以找到下述文件:
如果使用 字符代替 字符,则将扩大找到的文件数量。可以匹配下述所有
文件名:
尽管这种搜索文件的方法肯定很有用,但也十分有限。和 通配符的有限能力可以使你
对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。
正则表达式的早期起源正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早
期研究。和 这两位神经生理学家研究出一种数学方式
来描述这些神经网络。
年!一位叫 "#$的美国数学家在 和 早期工作的基础
上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表
达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。
随后,发现可以将这一工作应用于使用 $%&#的计算搜索算法的一些早期研究,
$%&# 是 '的主要发明人。正则表达式的第一个实用应用程序就是 '中
的 (编辑器。
如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本
的编辑器和搜索工具中的一个重要部分。
使用正则表达式在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于
静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态
文本时就有困难了,甚至是不可能的。
使用正则表达式,就可以:
测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在
一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,
或者替换为别的文字。
根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
例如,如果需要搜索整个 )*站点来删除某些过时的材料并替换某些 +%,格式化标记,
则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或
+%,格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的
材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则
表达式来查找并替换那些需要替换的标记。
正则表达式语法和优先权顺序 —《正则表达式教程》
上一篇 -目录 -下一篇
正则表达式语法
一个正则表达式就是由普通字符(例如字符 到 .)以及特殊字符(称为
元字符
)组成的
文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一
个模板,将某个字符模式与所搜索的字符串进行匹配。
这里有一些可能会遇到的正则表达式示例:
JScript VBScript
匹配
/012134/ 50121345
匹配一个空白行。
/1678167/ 516781675
验证一个 9:号码是否由一个
位数字,一个连字符以及一个
位数字组成。
/;<=>;1/1>/ 5;<=>;1/1>5
匹配一个 +%,标记。
下表是元字符及其在正则表达式上下文中的行为的一个完整列表:
字符 描述
1
将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后
向引用、或一个八进制转义符。例如,匹配字符 55。1匹
配一个换行符。序列 11匹配 515而 51<5则匹配 5<5。
0
匹配输入字符串的开始位置。如果设置了 RegExp对象的
Multiline属性,0也匹配 1或 1之后的位置。
4
匹配输入字符串的结束位置。如果设置了 RegExp对象的
Multiline属性,4也匹配 1或 1之前的位置。
匹配前面的子表达式零次或多次。例如,.能匹配 5.5以及
5.5。 等价于6?!7。
@
匹配前面的子表达式一次或多次。例如,.@能匹配 5.5以及
5.5,但不能匹配 5.5。@等价于 6!7。
匹配前面的子表达式零次或一次。例如,5<=5可以匹配
55或 55中的55。等价于 6?!7。
6n7
n是一个非负整数。匹配确定的 n次。例如,67不能匹配
5A*5中的 ,但是能匹配 5B5中的两个 。
6n!7
n是一个非负整数。至少匹配 n次。例如,6!7不能匹配
5A*5中的 ,但能匹配 5B5中的所有 。6!7等价
于 @。6?!7则等价于 。
6n!m7
m和 n均为非负整数,其中 n;Cm。最少匹配 n次且最多匹配
m次。刘, 56!D75将匹配 5B5中的前三个
。6?!7等价于 。请注意在逗号和两个数之间不能有空
格。
当该字符紧跟在任何一个其他限制符 <!@!!6n7!6n!7!
6n!m7=后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹
配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索
的字符串。例如,对于字符串 55,@将匹配单个 55,
而 @将匹配所有 。
匹配除 515之外的任何单个字符。要匹配包括 1在内的任何字
符,请使用象 213的模式。
<pattern=
匹配 pattern并获取这一匹配。所获取的匹配可以从产生的
集合得到,在 EA"#中使用 SubMatches集合,
在 F"#中则使用 $0G$9属性。要匹配圆括号字符,请使用
1<或 1=。
<Hpattern=
匹配 pattern但不获取匹配结果,也就是说这是一个非获取匹
配,不进行存储供以后使用。这在使用 5或5字符 <-=来组合一个
模式的各个部分是很有用。例如, <HI-=就是一个比
I-更简略的表达式。
<
Cpattern=
正向预查,在任何匹配 pattern的字符串开始处匹配查找字符
串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后
剩余18页未读,继续阅读
kindy1022
- 粉丝: 30
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0