当前位置: 代码迷 >> 综合 >> 正则表达式(REGULAR EXPRESSIONS)
  详细解决方案

正则表达式(REGULAR EXPRESSIONS)

热度:66   发布时间:2024-01-21 19:11:09.0
匹配操作符
  • 转义字符:\
  • 匹配任意单个字符:.
  • 字符序列单字符占位:[1249a],[^12],[a-k]
  • 行首:^
  • 行尾:$
  • 单词首尾边界:<,>,:,<abc
  • 连接操作:|
  • 选择操作符:(,)
  • 反向引用:\n
重复操作符:
  • 匹配0或1次:?
  • 匹配0到多次:*
  • 匹配1或多次:+
  • 匹配n次:{n}
  • 匹配n到多次:{n,}
  • 匹配n到m次:{n,m}
以下符号是扩展表达式,使用需要加"\"

“?” “+” “{” “}” “|” “(” “)”

匹配任意字符

.*

eg01:匹配包含单词以apple开头的行

[root@node01 ~]# grep "\<apple" exp.txt

eg02:匹配包含单词以apple结尾的行

[root@node01 ~]# grep "apple\>" exp.txt

eg03:匹配含有apple单词的行

[root@node01 ~]# grep "\<apple\>" exp.txt

eg04:匹配任意字符的使用:.*

[root@node01 ~]# grep ".*apple.*pear.*banana" exp.txt
abcapple123pearbbbbbananaqqqadf

eg05:选择操作符:(,)

[root@node01 ~]# grep ".*\(apple\).*\(pear\).*\1.*\2" exp.txt 
qwerappletyuipearasdfapplezxcvbpearhjkl

eg06:匹配文件中包含四位整数的文本行

  • 写法一
    将每一种包含四位整数的情况用“|”连接起来
[root@node01 ~]# grep -E  "^[0-9]{4}[^0-9]|[^0-9][0-9]{4}[^0-9]|[^0-9][0-9]{4}$|^[0-9]{4}$" exp.txt
  • 写法二
    以一个四位整数为整体分隔成三部分,左边可以是以数字开头也可以是非数字开头(但后面必须有一位数字),中间是两位数字,右边可以是数字结尾或者是非数字结尾(但必须在最前面有一位数字)
[root@node01 ~]# grep -E "(^[0-9]|[^0-9][0-9])[0-9]{2}([0-9]$|[0-9][^0-9])" exp.txt