via 春潮频道;
I. 正则表达式简介
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
via 正则表达式 - 语法;
II. 为什么应该学习正则表达式
基于现实场景的应用需要;文本的复杂处理;正则表达式是一种强大而灵活的文本处理工具,提供了一种紧凑的、动态的方式,能够以一种完全通用的方式来解决各种字符串处理(例如:验证、查找、替换等)问题;大部分语言、数据库都支持正则表达式。
III. 表达式即条件
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
很可能你使用过Windows/Dos下用于文件查找的通配符(wildcard),也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索.doc。在这里,会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号“-”,最后是7或8位数字的字符串(像010-12345678或0376-7654321)。
表达式即条件(规则)的字符表达;
IV. 学习的难点
理解的基础上,30分钟就能速成;
V. 示例
手机号(11位数)的正则表达式(举例),以1开头,第二位可以分别是345678,第三位数开始可以是0-9之间任意数字,第三位数开始算到第十一位数一共有9位数,它的正则表达式为;
^1[34578][0-9]{9}$
其中符号 ^
与$
为元字符,它有特殊的定义,[]
用以分组,{}
用以表示重复,在这里则表示该分组[0-9]重复的次数为9次;
能看出什么窍门吗?
via 正则表达式学习笔记;
VI. 常用的元字符
代码 | 说明 |
---|---|
. |
匹配除换行符以外的任意字符 |
\w |
匹配字母或数字或下划线 |
\s |
匹配任意的空白符 |
\d |
匹配数字 |
\b |
匹配单词的开始或结束 |
^ |
匹配字符串的开始 |
$ |
匹配字符串的结束 |
VII. 更多学习资料
1.正则表达式30分钟入门教程;
2.正则表达式30分钟入门教程;(这个示例多)
VIII. 正则表达式在线测试工具
1.正则表达式在线工具;
IX. 带着问题学习
当我们想从电话录里面搜索一个号码会怎样做?直接输入想搜索的号码即可;假设现在我们现在只记得这个号码的部分,以137开头,89结尾的电话号码,这在正则表达式里要怎么表达?
^137\d{6}89$
X. 正则表达式的应用
XI. 支持正则表达式的 Linux 命令
在使用grep、awk和sed命令时,需要使用正则表达式。
grep:grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep命令_Linux grep 命令用法详解:强大的文本搜索工具.pdf
awk命令_Linux awk 命令用法详解:文本和数据进行处理的编程语言.pdf
sed命令_Linux sed 命令用法详解:功能强大的流式文本编辑器.pdf
via Linux命令大全;
XII. 从零基础到高阶
版权属于:毒奶
联系我们:https://limbopro.com/6.html
毒奶搜索:https://limbopro.com/search.html
毒奶导航:https://limbopro.com/daohang/index.html本文链接:https://limbopro.com/archives/Regular_Expressions.html
本文采用 CC BY-NC-SA 4.0 许可协议,转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!