作者:lovely尤研君2007 | 来源:互联网 | 2013-06-24 11:28
1.2 如何使用正则表达式
如果认真思考一下那些问题场景,你就会发现它们不外乎两种情况:一种是查找特定的信息(搜索),另一种是查找并编辑特定的信息(替换)。事实上,从根本上来讲,那正是正则表达式的两种基本用途:搜索和替换。
给定一个正则表达式,它要么匹配一些文本(进行一次搜索),要么匹配并替换一些文本(进行一次替换)。
1.2.1 用正则表达式进行搜索
正则表达式的主要用途之一是搜索变化多端的文本,比如刚才描述的搜索单词car的场景:你要把car、CAR、Car,或CaR都找出来,但这只是整个问题比较简单的一部分(又许多搜索工具都可以完成不区分字母大小写的搜
索)。比较困难的部分是确保scar、carry和incarcerate之类的单词不会被匹配到。一些比较高级的编辑器提供了"Match Only Whole Word(仅匹配整
个单词)"选项,但还有许多编辑器并不具备这一功能,而你往往无法在你正在编辑的文档里做出这种调整。使用正则表达式而不是纯文本car进行搜索就可以解决这个问题。
※ 提示 :想知道如何解决这个问题吗?你们其实已经见过答案了--它就是我们刚才给出的示例语句:\b[Cc][Aa][Rr]\b
请注意,“等于”比较(比如说,用户给出的电子邮件地址是否匹配这
个正则表达式?)本质上也是一种搜索操作,这种搜索操作会对用户所提供
的整个字符串进行搜索以寻找一个匹配。与此相对的是子字符串搜索,子字符串搜索时“搜索”这个词的普通含义。
1.2.1 用正则表达式进行替换
正则表达式搜索的威力非常强大,非常有用,而且比较容易学习和掌握。
许多示例都与“匹配”有关。不过,正则表达式的真正威力体现在替换操作方面,比如我们刚才所描述的需要把URL地址字符串替换为可点击的URL地址场景:这需要先把相关文本里的URL地址字符串找出来(比如说,通过搜索
以http://或https://开头、以句号、逗号或空白字符结尾的字符串),再把找到的URL地址字符串替换为HTML语言的" ... "元素,如下所示:
http://www.phpcq.com/
替换结果:
http://www.phpcq.com/
绝大多数应用程序的 "Search and Replace"(搜索和替换)选项都可以完成这种替换操作,但使用一个正则表达式来完成这个任务将简单得让人难以置信。