正则表达式简述

正则表达式简述

什么是正则表达式:

正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

正则表达式分类:

  • 标准正则表达式

  • 扩展正则表达式

标准正则表达式:

  • 元字符

. :表示匹配任意单个字符

[ ] :表示匹配指定范围内的任意单个字符

[^] :表示匹配指定范围外的任意单个字符

字符合集:

[:space:] 匹配空格

[:digiat:] 匹配数字

[:lower:] 匹配小写字母

[:upper:] 匹配大写字母

[:alpha:] 匹配大小写字母

[:punct:] 匹配所有标点符号

[:alnum:] 匹配大小写字母和数字

  • 次数匹配

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

.*:匹配任意长度的任意字符

\?:匹配其前面的字符1次或0次

\{m,n\} :匹配其前面的字符至少m次至多n次

  • 位置锚定

^ :锚定行首,此字符后面的任意内容出现在行首

$ :锚定行尾,此字符前面的任意内容出现在行尾

\<或\b:锚定词首,此字符后面的任意字符必须作为单词的首部出现

\>或\b:锚定词尾,此字符前面的任意字符必须作为单词的尾部出现

  • 分组

\(\):对括号内内容进行分组,视为一个整体进行读取,并便于后向引用。

\1:引用第一个分组匹配内容

\2:引用第二个分组匹配内容

\n:引用第N个分组匹配内容


扩展正则表达式:

  • 元字符

. :表示匹配任意单个字符

[ ] :表示匹配指定范围内的任意单个字符

[^] :表示匹配指定范围外的任意单个字符

字符合集:

[:space:] 匹配空格

[:digiat:] 匹配数字

[:lower:] 匹配小写字母

[:upper:] 匹配大写字母

[:alpha:] 匹配大小写字母

[:punct:] 匹配所有标点符号

[:alnum:] 匹配大小写字母和数字

  • 次数匹配

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

.*:匹配任意长度的任意字符

?:匹配其前面的字符1次或0次

+:匹配其前面的字符至少1次

{m,n} :匹配其前面的字符至少m次至多n次

  • 位置锚定

^ :锚定行首,此字符后面的任意内容出现在行首

$ :锚定行尾,此字符前面的任意内容出现在行尾

\<或\b:锚定词首,此字符后面的任意字符必须作为单词的首部出现

\>或\b:锚定词尾,此字符前面的任意字符必须作为单词的尾部出现

  • 分组

():对括号内内容进行分组,视为一个整体进行读取,并便于后向引用。

\1:引用第一个分组匹配内容

\2:引用第二个分组匹配内容

\n:引用第N个分组匹配内容

例:

匹配IP地址包网络地址和广播地址表达式

(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>

表达式解释:

(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.) 该部分内容匹配0-255的数字和.

{3} 该部分内容表示匹配前面分组内容三次

\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\> 表示匹配IP地址最后一位 0-255的数字

原创文章,作者:Net18-Tomcat,如若转载,请注明出处:http://www.178linux.com/14077

赞 (0)
Net18-TomcatNet18-Tomcat
上一篇 2016-04-05 23:02
下一篇 2016-04-05 23:03

相关推荐

  • 第四天作业

    1 、创建 用户gentoo ,附加组为bin 和root ,默认shell为/bin/csh ,注释信息为"Gentoo Distribution" 1 useradd -G bin,root -s /bin/csh -c "Gentoo Distribut…

    Linux干货 2016-08-04
  • iptables练习

    系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; 系统默认策略设定: ~]# iptables -P INPUT DROP ~]# iptables -P OUPUT DROP 网络说明…

    Linux干货 2016-12-27
  • rpm包管理

    一、概述 RPM 是RPM Package Manager(RPM软件包管理器)的缩写。由redhat公司的Redhat package manager改名而来,成了RedHat的工业标准 二、rpm的命名格式: rpm包的命名格式:name-version-relase.arch.rpm version: major.minor.release,同源代码 …

    Linux干货 2015-10-07
  • 马哥教育网络班22期+第十周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)    CentOS系统启动流程为:POST –> BootSequence(BIOS) –> BootLoader(MBR) –> Kernel(ramdisk) –> r…

    Linux干货 2016-12-13
  • linux文本处理三剑客—grep

      cat:concatenate 文本文件查看工具 cat [option] filename… -n:给显示出来的文本行加上编号 -b:非空行编号 -V:显示 ^ -E:显示行结束符$ -T:显示制表符 -A:显示所有控制符-A=-VET -s:压缩连续…

    系统运维 2016-08-05
  • linux文件目录详解

    linux目录结构   (且看且不看) 历史上 /usr和 /etc文件夹下既保存静态文件,也保存可变文件,后来有了/var层次结构,/usr下面的可变文件被转移到/var下面。因而/usr现在可以只读的方式挂载(如果它在单独的文件系统上)。 /etc下的可变文件早已转移到/var,因为技术上允许/ 根是系统内核启动后挂载的第一个分区,挂载到根上的…

    Linux干货 2017-05-31

评论列表(1条)

  • stanley
    stanley 2016-04-05 23:04

    了解下标签的作用,要认真写