【Linux操作系统学习笔记】三、正则表达式

一、正则表达式的基本输入方法

  1. 标准输入
  • 基本命令
grep --color 'hei' 
“ --color ” 表示以色彩标注出匹配的内容;
“ hei ” 是一个符合正则表达式语法的匹配模式,用于匹配内容
  1. 管道输入
  • 作用:将一个程序的输出,作为另一个程序的输入,使用 “ | ” 符号
  • 基本命令(1)
ls | cat
将ls原本输出到终端的内容,作为cat命令的输入,又cat命令输出出来
  • 基本命令(2)
ls | grep --color 'Dog'
 文件列表中所有包含 “ Dog ” 的文件名被匹配出来
  • 基本命令(3)
grep --color 'itheima' /etc/passwd
从“ /etc/passwd ”文件中匹配出所有包含 ‘ itheima ’字符串的内容

二、POSIX 和 Perl 语法

  1. 默认支持 POSIX BRE 语法,“-E”可以切换到 POSIX ERE 语法,“-P”可以切换到Perl语法
  2. 基础语法
^		匹配一行的开始  
$  	    匹配一行的结束	
.		匹配一个任意字符
*		匹配它前面的字符零次或多次
.*		匹配多个任意字符
  1. pcretest命令
    在这里插入图片描述
  2. 元字符、文本字符和转义字符
  • 元字符
^   $   .  *  
  • 文本字符 :普通的文本,如字母和数字等
  • 转义字符:匹配 :**(^ $ . * )**等特殊字符
grep -P --color '[\^\$\*\\]'

例子:
在这里插入图片描述

  • 使用 \x27 匹配单引号
    例子:
    在这里插入图片描述
  1. 分组
  • 分组(又称 子模式、子匹配),用小括号“()”来实现
grep -P --color '(a-){3}'
  • {3} 用于匹配前面的字符3次,如“ a{3} ”表示匹配“ aaa ”
    • 如果不加小括号
      • a-{3} 表示匹配 “ a— ”
    • 如果加小括号
      • (a-) 表示匹配 " a-a-a- "

三、正则表达式的语法规则

  1. 定位符
  • 定位符用于确定富足的具体位置,如在字符串的头部和尾部
^			匹配字符串开始的位置
$			匹配字符串结尾的位置
^$			匹配空行
  • 示例:
    在这里插入图片描述
  1. 选择符
  • 若要查找的条件有多个,只要其中一个满足即可成立时,可以用选择符 “ | ” (可以理解为 “或”)
  • 示例:在这里插入图片描述
  1. 字符范围
  • 当需要匹配某个范围内的字符时,可以用 " [ ] " 和连字符 " - " 来实现
[abc]					匹配字符a、b、c
[a-z]					匹配字母a~z范围内的字符
[a-zA-Z0-9]				匹配全部字母(包括大小写)和数字0~9的字符
  • 在中括号中还可以用反义字符“ ^ ”,匹配不在指定范围内的字符
[^abc]					匹配除字符a、b、c以外的字符
  1. 点字符和限定符
    在这里插入图片描述

四、正则表达式的应用案例

  1. 验证文件拓展名
\.(html|css|jsp)$
  1. 验证IP地址
  • IP地址范围:0.0.0.0 到 255.255.255.255
  • 将整个范围拆分为3个小范围:0-99,100-199、200-255
0~99: 		[1-9]?\d
100~199:  	1\d{2}
200~255:  	2([0-4]\d|5[0-5])

用 | 连起来:
0~255:( [1-9]?\d | 1\d{2} | 2([0-4]\d|5[0-5]))
  • 加上分割符:
完整表达式 :   ^(([1-9]?\d | 1\d{2} | 2([0-4]\d|5[0-5]))\.){3}( [1-9]?\d | 1\d{2} | 2([0-4]\d|5[0-5]))$
  1. 验证日期
  • 基本日期:“年-月-日”
验证年:[1-9]\d{3}
验证月:[1-9]|1[0-2]
验证天:[1-9]|[1-2]\d|3[01]
  • 完整表达式
^[1-9]\d{3}-([1-9]|1[0-2])-([1-9]|[1-2]\d|3[01])$
发布了28 篇原创文章 · 获赞 4 · 访问量 1311

猜你喜欢

转载自blog.csdn.net/weixin_44100826/article/details/104606016