3
文章目录
- 前言
- 一、正则表达式
- 二、文本处理工具
前言
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
一、正则表达式
(一)、正则表达式定义
正则表达式(别称):正规表达式、常规表达式
使用字符串来描述、匹配一系列符合某个规则的字符串
(二)、正则表达式与通配符功能的区别
1.通配符功能是用来处理文件名
2.而正则表达式是处理文本内容中字符
(三)、正则表达式组成
1、普通字符
大小写字母、数字、标点符号及一些其他符号
2、元字符
指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式
3、正则表达式层次
基础正则表达式BRE
基础正则表达式是常用的正则表达式部分
除了普通字符外,常见到以下元字符
#.
#匹配任意单个字符,可以是一个汉字
#[]
#匹配指定范围内的任意单个字符,示例:[zhou][#0#-#9#]#[]#[a-zA-Z]
#[^]
#匹配指定范围外的任意单个字符,示例: [^zhou] [^a.z] a.z
如果 . 写在 [ ] 就是 . 不需要转义 转义 . \. 代表转义
$ :匹配字符串结束的位置
次数
*代表前面的字符出现 0次 或任意次
.*任意长度的任意字符(要有)
\+ 一次以上
\{
n\} 精确匹配 n 次
*匹配前面字符任意次
? 0或1次
+1次或多次
{
n} 匹配n次
{
m,n} 至少m,至多n次
{
,n} #匹配前面的字符至多n次,<=n,n可以为0
{
n,} #匹配前面的字符至少n次,<=n,n可以为0
提取ifconfig ens33中合法的IP地址——IP地址的通式表达grep -o ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}’
(四)、扩展表达式
扩展正则表达式元字符:(支持的工具: egrep、 awk)
+:匹配前面子表达式1次以上,例: go+d,将匹配至少一个o,如lgod