一个神奇高效的工具-正则表达式(一)
2017-06-25 13:47
363 查看
什么是正则表达式
正则表达式是用来匹配和处理文本的字符串,是用正则表达式语言创建的。一般使用正则表达式的场景无外乎两个:* 查找特定的信息(搜索)
* 查找并编辑特定的信息(替换)
即搜索和替换
正则表达式并不是一种完备的语言,他是内置在其他语言中的“迷你”的语言,我们可以把它看作是一个工具,一个神奇并且高效的工具。
如何学习正则表达式
我们说正则表达式是一门“语言”,那么一门语言就一定有属于它的“语法”。学习正则表达式,需要学习它的语法,这是基础和根本,但是正则表达式真正的难度在于如何在合适的场景用所学的语法(合适的语法,因为学习了正则表达式之后,很多问题会有很多种方法去解决,有的兼容性好,有的简单,有的比较快达成,那么问题如何去寻找最合适的方法,往往是需要很多的实践和尝试的)。学以致用,实践是检验真理的唯一标准,所以,大家在日常的编程工作中,一定要去敢于使用正则表达式,不断的锻炼自己,正如某位前辈曾经说的:当一个问题,你决定使用正则表达式来解决的时候,很好,那么你现在面临的是两个问题了
匹配
无论是查找还是替换,最先要做到也是最基本的,就是匹配你想要处理的内容,匹配全了,我们的查找才能全面,替换才能准确,匹配不到所有的内容或者匹配的内容不仅仅包括你的目标,那么都会成为一个错误的使用。纯文本匹配
日常我们在使用编辑器时,最常用的就是使用纯文本进行匹配:welcome to guangzhou
如果想要找到所有的guangzhou,那么只需要使用“guangzhou”进行匹配即可
那么如果你在输入匹配内容的时候,并不知道文章中的guang zhou是否存在大写字母,如果你是入了”GuangZhou”,上面的内容还能匹配到吗?答案是否,正则表达式是对大小写敏感的“语言”(某些环境下,可以使用例如i的选项来ignore大小写),但是正则表达式的很多技巧,都可以完美的解决这个问题,这个我们在接下来的内容中,会详细的进行介绍
任意字符的匹配
正则表达式的神奇,绝对不是体现在纯文本的匹配呀!下面我们来介绍他的七十二般变化之一-如何体现任意字符的匹配。I am in class-1 Li ming is in class-4 My brother is in class-7
我们如何在以上文本中,找出所有的班级的集合呢?正则表达式中有一个符号,可以匹配任意的字符:
符号 .
所以我们只需要输入匹配文本:
模式:class-.
就可以成功的匹配到文本中的所有班级信息(有心的同学,应该注意到,如果班级不止一位数,这个匹配的样式还可行吗?可以思考一下)
如何匹配.
接着上面的内容,我们领略到了”.”的强大,那么,如果我们的待匹配文本中,我们需要匹配它本身,应该怎么做呢?我们应该告诉处理器,我们要找它本人2.4 214
如果我们要匹配数字2.4,你需要在.前面增加一个\(反斜杠,\是一个元字符,表示它后面的字符有特殊的含义,不是他本身的含义(本身含义即为匹配任意字符))
模式:2\.4
哈哈,有时候”\”也身不由己,需要匹配他自身的时候:
模式:\\
总结
模式(正则表达式简称)可以由纯文本或者一些元字符组成,元字符前增加\,可以匹配它本身我的个人博客,欢迎拍砖:codingsj.com
相关文章推荐
- 一个神奇高效的工具-正则表达式(二)
- 一个神奇高效的工具-正则表达式(四)
- 一个神奇高效的工具-正则表达式(五)
- 一个神奇高效的工具-正则表达式(三)
- 一个神奇高效的工具-正则表达式(六)
- 一个测试Javascript正则表达式的在线工具
- Java 小例子:一个测试正则表达式的工具
- 推荐一个正则表达式的工具RegexBuddy
- 转一个正则表达式的工具,很好用.
- 写了一个测试正则表达式的小工具
- Java 小例子:一个测试正则表达式的工具
- 自己动手写一个轻巧,高效的正则表达式引擎
- 一个正则表达式的小工具--myRegexHelper
- 一个帮助你了解javascript正则表达式的工具类型网站
- 一个不错的正则表达式分析工具
- 正则表达式在ff与ie下的一个神奇差异
- 一个正则表达式的小工具--myRegexHelper
- 发布一个自己写的文件重命名工具,支持正则表达式替换和自定义规则。
- 推荐一个好用的正则表达式在线生成工具
- 【每天一个Linux命令】17. 强大的文件搜索工具grep&&正则表达式