shell 正则表达式

目录

正则表达式

正则表达式含义

代表字符

表示次数

位置锚点

[分组 或](#分组 或)

元字符

扩展正则表达式

命令举例

[如何查找 IP 地址](#如何查找 IP 地址)

[表示 qq号](#表示 qq号)

表示手机号


正则表达式

shell :/bin/bash

正则表达式:匹配的是文章中的字符

通配符:匹配的是文件名

元字符:不表示本来的含义,在正则表达式中有特殊含义的字符

正则表达式:元字符的使用

主要用来匹配字符串(命令结果,文本内容)

通配符匹配文件(而且是已存在的文件)

可以使用

------ man 7 regex :可以使用 man 手册帮助


正则表达式含义

代表字符

. :单个字符

:单个字符

表示次数

* :代表前面的字符出现, 0 到正无穷 次

.* :代表任意长度字符

\?:0 或 1 次,可以有也可以无

\+:1次到正无穷次

------ 明确次数

\ {n\}:前面的字符出现 n次

\ {2,4\}:前面字符出现 2到4 次

\ {2,\}:前面字符出现最少 2次

\ {,4\}:前面字符出现最多 4次

位置锚点

^ :开头

$ :结尾

\b 字符串的开头 \<

\b 字符串的结尾 \>

分组 或

分组:()使用括号将需要组合的字符括起来

后向引用:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名

或:\|


元字符

元字符 作用
. 匹配任意单个字符,可以是一个汉字
匹配括号中的一个字符
\^ 表示否定括号中出现字符类中的字符,取反
:alnum: 字母和数字
:alpha: 代表任何英文大小写字符,亦即 A-Z, a-z
:lower: 小写字母
:upper: 大写字母
:blank: 空白字符(空格和制表符)
:space: 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比 :blank:包含的范围广
:cntrl: 不可打印的控制字符(退格、删除、警铃...)
:digit: 十进制数字
:xdigit: 十六进制数字
:graph: 可打印的非空白字符
:print: 可打印字符
:punct: 标点符号
\w 匹配单词构成部分
\W 匹配非单词构成部分
\S 匹配任何非空白字符
\s 匹配任何空白字符,包括空格、制表符、换页符等等
Unicode 正则表达式会匹配全角空格符

------ 任意元字符进入 ,就只代表字符本身的含义


扩展正则表达式

符号 作用
+ 匹配前面子表达式1次以上
? 匹配前面子表达式0次或1次
() 将括号中的字符串看作是一个整体
| 以或的方式匹配字符串

命令举例

如何查找 IP 地址

root@localhost \~# ifconfig ens32|grep netmask|grep -o '0-9\+\.0-9\+\.0-9\+\.0-9\+'

192.168.88.20

255.255.255.0

192.168.88.255

root@localhost \~# ifconfig ens32|grep netmask|grep -o '0-9\{1,3\}\.0-9\{1,3\}\.0-9\{1,3\}\.0-9\{1,3\}'

192.168.88.20

255.255.255.0

筛选出IP地址的四个分段

0-9\{1,3}\:三位数,每位是0-9的范围

表示 qq号

root@localhost \~# echo "940132245" |grep "\b0-9\{6,12\}\b"

940132245

表示手机号

root@localhost \~# echo "13705173391"|grep -E "\b134567890-9{9}\b"

13705173391

相关推荐
Frag0ut3 天前
Notepad++ 正则表达式完全手册:文本处理的终极武器(2026实战版)
正则表达式·notepad++·数据清洗·日志分析·正则替换·提取ip·正则表达式实战
Patrick在香港6 天前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
echome8886 天前
Python 正则表达式:5 个日常够用的模式
python·正则表达式
yivifu8 天前
能够使用Python正则表达式函数的文本处理工具——Calibre电子书编辑器
正则表达式
全栈陈序员8 天前
【Python】基础语法入门(二十九)—— 正则表达式实战:文本处理利器
开发语言·人工智能·python·正则表达式
BruceXu14 天前
\b 在中文里会静默失效:三个正则坑和一份能用的字符边界方案
正则表达式
阿昭L15 天前
正则表达式
正则表达式·编译原理
波力海苔夹心脆67516 天前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
FRing0317 天前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
小白快快跑哦19 天前
python-字符串全解(六):正则表达式-元字符与转义
python·正则表达式·字符串·元字符·转义