春潮频道.jpg

via 春潮频道

I. 正则表达式简介

正则表达式.jpeg

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

via 正则表达式 - 语法

II. 为什么应该学习正则表达式

基于现实场景的应用需要;文本的复杂处理;正则表达式是一种强大而灵活的文本处理工具,提供了一种紧凑的、动态的方式,能够以一种完全通用的方式来解决各种字符串处理(例如:验证、查找、替换等)问题;大部分语言、数据库都支持正则表达式

III. 表达式即条件

字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

很可能你使用过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}$

正则表达式.png

其中符号 ^$ 为元字符,它有特殊的定义,[]用以分组,{}用以表示重复,在这里则表示该分组[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命令大全

最后修改:2021 年 04 月 20 日 02 : 22 AM