正则表达式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、正则表达式
    • 1.含义
    • 2.通配符
      • 2.1 通配符含义作用
      • 2.2 常见的通配符
    • 3.元字符
    • 4.表示次数
    • 5.位置锚定
    • 6.分组
  • 二、扩展正则表达式
    • 1.表示次数
    • 2.拓展练习


一、正则表达式

1.含义

(1)是一种特殊字符及文本字符所编写的模式,针对文本文件的内容

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

2.通配符

2.1 通配符含义作用

通配符只用于匹配文件名、目录名等,不能用于匹配文件内容。(而且是已存在的文件或者目录)

2.2 常见的通配符

(1)*:通配符,匹配任意一个或多个字符

ls *.txt

在这里插入图片描述
(2)?:通配符,只能匹配任意一个字符

ls ?.txt

在这里插入图片描述(3)[ ] 通配符,匹配list中任意单个字符

ls [a-z].txt

在这里插入图片描述

3.元字符

正则表达式_第1张图片
示例:

ls /opt/ | grep “[^A-Z]”——————————不要大写字符的文本内容

ls /opt/ | grep “[0-9].txt”—————————取含有0-9字符的txt文件名

ls /opt/ | grep “[a-zA-Z]”——————————匹配大小写英文字符

ls /opt/ | grep “[a-z0-9]”——————————同时匹配字符和数字

ls /opt/ | grep “[zq]”——————————————匹配zj任意的两个字符

4.表示次数

正则表达式_第2张图片

echo google | grep ‘go{2}gle’———————代表前面的o连续出现2次

echo gooooooogle | grep ‘go{2,}gle’———————代表前面的o出现2次以上

echo goooogle | grep ‘go{2,5}gle’——————代表前面的o出现2次以上5次以下

echo golgole | grep “(go){1}”————————不连续的go

在这里插入图片描述

ifconfig ens33 | grep -o “[0-9]+.[0-9]+.[0-9]+.[0-9]+”————————————匹配IP地址过滤出所有结果

在这里插入图片描述

echo [email protected] | grep “[0-9]+@qq.[a-z]+”————匹配邮箱号

在这里插入图片描述

5.位置锚定

正则表达式_第3张图片

<或 \b #词首错定,用于单词模式的左侧(连续的数字,字母,下划线都算单词内部)
>或\b #词尾错定,用于单词模式的石侧
#匹配敷个单词

cat /etc/fstab | grep -v “#” |grep -v “^$”————过滤出文字不包含#号行的
在这里插入图片描述

单词模式

echo hello-123 | grep “\bhello”
echo hello-123 | grep “\b123”

正则表达式_第4张图片

6.分组

分组:()将多个字符捆绑在一起,当作一个整体处理

或者:|

echo hello-123 | grep “\bhello”
echo hello-123 | grep “\b123”
echo abccc | grep “abc{3}”
echo abcabcabc | grep “(abc){3}”
echo golgogle | grep “(go){1}”
echo golgogle | grep “(go){1}gle”

正则表达式_第5张图片

二、扩展正则表达式

grep -E或者egrep

1.表示次数

正则表达式_第6张图片

2.拓展练习

将ifconfig ens33 的地址显示出来

ifconfig ens33 | grep -E -o “[0-9]+.[0-9]+.[0-9]+.[0-9]+”

正则表达式_第7张图片
将文本中的的区号展示出来

cat 888.txt | grep -E “[0-9]{,4}-[0-9]{,8}”

在这里插入图片描述
将电话号码展示(11位)

cat dhhm.txt | grep -E “[0-9]{,11}”

在这里插入图片描述
将不同的地址展示

cat kz.txt | grep -E “[0-9a-zA-Z]+@[0-9a-z]+.[a-z]{,3}”

正则表达式_第8张图片
不同类型的区号展示

cat lz.txt | grep -E “(([0-9]+)|[0-9]+)[ -]?[0-9]+[ -]?[0-9]+”

正则表达式_第9张图片

你可能感兴趣的:(正则表达式,数学建模)