正则表达式能解决什么问题?
Posted 图灵教育
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式能解决什么问题?相关的知识,希望对你有一定的参考价值。
正则表达式(regularexpression,简称regex)是一种工具,和其他工具一样,它是人们为了解决某一类专门的问题而发明的。要想理解正则表达式及其功用,最好的办法是了解它们可以解决什么样的问题。
请考虑以下几个场景。
☆ 你正在搜索一个文件,这个文件里包含着单词car(不区分字母大小写),但你并不想把包含着字符串car的其他单词(比如scar、carry和incarcerate等)也找出来。
☆ 你正在编辑一段源代码并且要把所有的size都替换为isize,但这种替换仅限于单词size本身而不涉及那些包含着字符串size的其他单词。
☆ 你正在显示一份计算机文件系统中所有文件的清单,但你只想把文件名里包含着Application字样的文件列举出来。
☆ 你正在把一些数据导入应用程序。那些数据以制表符作为分隔符,但你的应用程序要支持CSV格式(每条记录独占一行,同一条记录里的各项数据之间用逗号分隔并允许被括在引号里面)。
☆ 你需要在文件里搜索某个特定的文本,但你只想把出现在特定位置的(比如每行的开头或是每条语句的结尾)找出来。
以上场景都是大家在编写程序时经常会遇到的问题,用任何一种支持条件处理和字符串操作的编程语言都可以解决它们,但问题是你的解决方案将会变得十分复杂。比较容易想到的办法是,用一些循环来依次遍历那些单词或字符并在循环体里面用一系列if语句来进行测试,这往往意味着你需要使用大量的标志来标记你已经找到了什么,你还没有找到什么,还需要检查空白字符和特殊字符,等等。而这一切都需要以手工方式来进行。
另一种解决方案是使用正则表达式。上述问题都可以用一些精心构造的语句,或者说一些由文本和特殊指令构成的高度简练的字符串来解决,比如像下面这样的语句:
\b[Cc][Aa][Rr]\b
相关图书推荐
本书是全球程序员公认的正则表达式最佳速成教材。它精选了正则表达式中最常用、最重要的知识,从简单的文本匹配开始,通过简明又实用的示例,循序渐进地介绍更高级的内容,包括回溯引用、前后查找、嵌入条件等。书中的内容在保持语言和平台中立的同时,还兼顾了各种平台之间的差异。通过阅读本书,读者能够在轻松的氛围中迅速掌握正则表达式的精髓,并可立即运用所学,解决实际问题。
本书目标读者是以下几类人员。
▽ 第一次接触正则表达式。
▽ 希望自己能够快速掌握正则表达式的基本用法。
▽ 想使用一种强大的工具(虽然它不那么容易掌握)去解决实际问题。
▽ 正在开发Web应用软件并需要进行复杂的表单和文本处理。
▽ 正使用着Perl、ASP、VisualBasic、.NET、C#、Java、JSP、php、ColdFusion语言(或更多其他程序设计语言),希望在开发的应用程序里使用正则表达式。
▽ 希望在不求助于其他人的前提下尽快掌握正则表达式。
点击左下角阅读原文跳转到图灵社区本书主页查看更多试读内容。
以上是关于正则表达式能解决什么问题?的主要内容,如果未能解决你的问题,请参考以下文章