正则表达式使用概述
一、什么是正则表达式
正则表达式(Regluar Expressions)又称规则表达式,这个概念最初是由Unix中的工具软件(如sed 和 grep)普及开的。正则表达式在代码中常简写为REs,regexes或regexp(regex patterns)。它本质上是一个小巧的、高度专用的编程语言。 许多程序设计语言都支持通过正则表达式进行字符串操作。
二、正则表达式能做什么
正则表达式的主要应用对象是文本,使用正则表达式可以指定想要匹配的字符串规则,然后通过这个规则来匹配、查找、替换或切割那些符合指定规则的文本。总体来讲,正则表达式可以对指定的文本实现以下功能:
查找与替换: 判断给定字符串中是否包含满足正则表达式所指定的匹配规则的子串,如查找一段文本中的所包含的IP地址。另外,还可以对查找到的子串进行内容替换。
匹配验证: 判断给定的字符串是否符合正则表达式所指定的过滤规则,从而可以判断某个字符串的内容是否符合特定的规则(如email地址、手机号码等);当正则表达式用于匹配验证时,通常需要在正则表达式字符串的首部和尾部加上^和$,以匹配整个待验证的字符串。
字符串分割与子串截取: 基于子串查找功能还可以以符合正则表达式所指定的匹配规则的字符串作为分隔符对给定的字符串进行分割。
三、正则中常用的元字符【★★★★★】
基本类常用元字符:
元字符 | 功能 |
---|---|
. | 匹配除了换行符以外的任意单个字符 |
* | 前导字符出现0次或者连续多次 |
.* | 任意长度字符 |
^ | 行首{以…开头} |
$ | 行尾{以…结尾} |
^$ | 空行 |
[] | 匹配括号里面的任意单个字符或一组单个字符 |
[^] | 匹配不包括括号里面的任意单个字符或一组单个字符 |
其他类常用字符:
元字符 | 功能 |
---|---|
<> | 精准匹配 |
() | 组字符(看成一个整体) |
? | 前导字符出现0次或1次 |
+ | 前导字符出现1次或1次以上 |
| | 或(匹配a或b) |
{n} | 前导字符重复n次 |
{n,} | 前导字符至少重复n次 |
{n,m} | 前导字符至少重复n次,最多重复m次 |
四、案例演示
环境搭建如下:
1 | [root@localhost ~]# cat 2.txt |
简单案列演示:
1 | # 查找以my开头的行; |
“没有人可以回到过去,但谁都可以从现在开始”。
——《人民日报》