Linux的正则表达式

什么是正则表达式?

  • 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。

正则表达式与通配符

  • 正则表达式用来在文件中匹配符合条件的字符串,正则的包含匹配。
  • 通配符用来匹配符合条件的文件名,通配符的完全匹配。

正则表达式

字符匹配符号

     .:  匹配任意单个字符;

    []: 匹配指定范围内的任意单个字符;如coo[kl]匹配cook或cool  

    [^]:匹配指定范围外的任意单个字符;如9[^01]匹配92、93、94等,但是不能匹配91或90

    [-] 匹配[]中指定范围内的任意一个字符;如[a-f]匹配从a到f之间的小写字母 

    大写 [[:upper:]] 或 [A-Z]

    小写 [[:lower:]] 或 [a-z]

    字母 [[:alpha:]] 或 [a-Z]  

    字母 数字[[:alnum:]] 

    空格或者制表符 [[:blank:]]

    纯数字 [[:digit:]] 或 [0-9]

    标点符号 [[:punct:]]

匹配次数符合:用在要指定次数的字符后面,用于指定前面的字符要出现的次数;

         *:匹配前面的字符任意次;

        .*:任意长度的任意字符;

        \?:匹配其前面的字符出现0或1次;即前面的可有可无

        \+:匹配其前面的字符出现至少1次;如ro9+匹配ro9或ro99或ro999等

        \{m\}:匹配前面的字符出现m次;如[0-9]{3}匹配任意一个三位数,[0-9]{3}可以扩展为[0-9][0-9][0-9]

        \{m,n\}:匹配前面的字符出现至少m次,最多n次;

        \{0,n\}:匹配前面的字符出现最多n次;

        \{m,\}:匹配前面的字符出现至少m次;如[0-9]\{1,\}匹配任意一个两位或更多位的数字

位置锚定符号:

        ^:行首锚定;用于模式的最左侧;

        $:行尾锚定;用于模式的最右侧;

        ^PATTERN$: 用于模式匹配整行;

        ^$: 空行;

        ^[[:space:]]*$

        \< 或 \b:词首锚定;用于单词模式的左侧;

        \> 或 \b:词尾锚定;用于单词模式的右侧;

        \<PATTERN\>:匹配整个单词;

分组:

\(\):将一个或多个字符捆绑在一起,当作一个整体进行处理;
            \(xy\)*ab

分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: \1, \2,...
    \1: 从左侧起,第一个左括号以及与之匹配右括号之间的模式所匹配到的字符;
            \(ab\+\(xy\)*\):
                \1:表示第一的()里的内容 ab\+\(xy\)*
                \2:表示第二的()里的内容 xy

支持后向引用:引用前面的分组括号中的模式所匹配字符,(而非模式本身)

其他符号规则

    ..  匹配任意两个字符

    |   匹配|两边的任意一项,如oc(mm|nn)匹配ocmm或ocnn

    \   转义符可以将上面介绍的特殊字符进行转义,如a\.b匹配a.b但不能匹配ajb。通过在.之前加上\从而忽略了.的特殊意义


来些示例

[root@anuo ~]# cat test 
root
Root
rot
boot
Rot
111
222
,123
.456
 haha
    hello
A1234
A123
A12
A1
A

1、查找A后有0到多个数字

[root@anuo ~]# egrep A[0-9]* test   --*表示前一个字符有0个或多个
A1234
A123
A12
A1
A

2、查找A后有1到多个数字,所以相对于上面的显示,最后一行没有了(等同于egrep -n "A[0-9]+" grep.txt)

[root@anuo ~]# egrep "A[0-9][0-9]*" test  或 egrep 'A[0-9]+' test.txt
A1234
A123
A12
A1

3、+号意思是前一个字符有1个或多个

[root@anuo ~]# egrep A[0-9]+ test       
A1234
A123
A12
A1

4、过滤掉以空格开头的行和去掉空行再去掉以.或以,开头的行

[root@anuo ~]# cat grep.txt |grep -v ^[[:blank:]]|grep -v ^$ |grep -Ev ^"\.|,"

5、过滤掉以#号开头的行,空行,以AB开头的行,以及so结尾的行

[root@anuo ~]# cat /etc/httpd/conf/httpd.conf |grep -v "#"|grep -v ^$ |grep --v '^A|B'|grep -v so$

匹配日期格式YYYY-MM-DD

[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}

匹配IP地址

[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\

总结Linux常用的一些特殊符合

*   表示所有(0到多个)字符。
?   是通配符,代表任意一个字符。
;   一般用于连续不同命令时的分隔符。
#   注释符。
|   管道
~   表示用户的家目录
/   路径分隔符
>   重定向,会覆盖老的内容
>>  追加重定向,在老的内容后面追加
<   输入重定向
<<  追加输入重定向
''  单引号,不具有变量置换功能,输出时所见即所得
""  双引号,具有变量置换功能,解析变量后输出,
``  反引号,tab键上面的的键,反引号中间为命令,会先执行,等价$()
{}  中间为命令区块组合或内容序列
!   逻辑非
&&  逻辑与,前一个指令执行成功时,执行后一个指令,也就是两个指令都会执行
||  逻辑或,前一个指令执行失败时,执行后一个指令,两个指令只会执行一个

转载于:https://blog.51cto.com/13744837/2115723

标题基于SpringBoot+Vue的社区便民服务平台研究AI更换标题第1章引言介绍社区便民服务平台的研究背景、意义,以及基于SpringBoot+Vue技术的研究现状和创新点。1.1研究背景与意义分析社区便民服务的重要性,以及SpringBoot+Vue技术在平台建设中的优势。1.2国内外研究现状概述国内外在社区便民服务平台方面的发展现状。1.3研究方法与创新点阐述本文采用的研究方法和在SpringBoot+Vue技术应用上的创新之处。第2章相关理论介绍SpringBoot和Vue的相关理论基础,以及它们在社区便民服务平台中的应用。2.1SpringBoot技术概述解释SpringBoot的基本概念、特点及其在便民服务平台中的应用价值。2.2Vue技术概述阐述Vue的核心思想、技术特性及其在前端界面开发中的优势。2.3SpringBoot与Vue的整合应用探讨SpringBoot与Vue如何有效整合,以提升社区便民服务平台的性能。第3章平台需求分析与设计分析社区便民服务平台的需求,并基于SpringBoot+Vue技术进平台设计。3.1需求分析明确平台需满足的功能需求和性能需求。3.2架构设计设计平台的整体架构,包括前后端分离、模块化设计等思想。3.3数据库设计根据平台需求设计合理的数据库结构,包括数据表、字段等。第4章平台实现与关键技术详细阐述基于SpringBoot+Vue的社区便民服务平台的实现过程及关键技术。4.1后端服务实现使用SpringBoot实现后端服务,包括用户管理、服务管理等核心功能。4.2前端界面实现采用Vue技术实现前端界面,提供友好的用户交互体验。4.3前后端交互技术探讨前后端数据交互的方式,如RESTful API、WebSocket等。第5章平台测试与优化对实现的社区便民服务平台进全面测试,并针对问题进优化。5.1测试环境与工具介绍测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值