正则表达式(二):补充

正则表达式二-补充

  • 一、位置锚定:
    • 1.常用:
  • 二、分组:
    • 1.定义:
    • 2.实操:
  • 三、扩展正则表达式:
    • 1.次数:
    • 2.实操:

一、位置锚定:

1.常用:

(1)选项:

选项 作用
^ 行首锚定,用于模式最左侧
$ 行尾锚定,用于模式最右侧
^root$ 用于模式匹配整行(单独一行,只有root)
1*$ 空白行

(2)实操:

# 打印出/etc/fstab中所有非#开头的非空行:
[root@test1 ~]# cat /etc/fstab | grep -v "^#" | grep -v "^$"

在这里插入图片描述

二、分组:

1.定义:

用()将多个字符捆绑在一起,当作一个整体处理。

2.实操:

1.用正则表达式写出不连续的ab:
echo abcabcabc | grep  "\(ab\)\{1\}"
[root@test1 ~]# echo abcabcabc | grep  "\(ab\)*"

在这里插入图片描述
在这里插入图片描述

2.用正则表达式打出1和2:
[root@test1 ~]# echo 1abc2abc | grep "\(1\|2\)"

在这里插入图片描述

三、扩展正则表达式:

1.次数:

选项 作用
* 匹配前面字符的任意次数
0次或1次
+ 1次或多次
{n} 匹配n次
{m,n} 至少m次,至多n次
{,n} 至多n次
{n,} 至少n次

2.实操:

1.用扩展正则表达式写出网卡地址:
ifconfig ens33 | grep -E -o "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"

在这里插入图片描述

2.用扩展正则写出固定电话号码:
[root@test1 ~]# cat test.txt | grep -E "[0-9]{,4}-[0-9]{,8}"

正则表达式(二):补充_第1张图片

3.用扩展正则写出手机号码:
[root@test1 ~]# cat test.txt | grep -E "[0-9]{,11}"

在这里插入图片描述

4.用扩展正则写出邮箱号码:
[root@test1 ~]# cat test.txt | grep -E "[0-9a-zA-Z]+@[0-9a-z]+\.[a-z]{,3}"

正则表达式(二):补充_第2张图片

5.用扩展正则写特殊电话号码:
grep -E "(\([0-9]+\)|[0-9]+)[ -]?[0-9]+[ -]?[0-9]+" test.txt

正则表达式(二):补充_第3张图片


  1. [:space:] ↩︎

你可能感兴趣的:(正则表达式,服务器,运维,linux,云计算)