正则表达式简述

正则表达式简述

什么是正则表达式:

正则表达式,又称正规表示法、常规表示法(英语: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
下一篇 2016-04-05

相关推荐

  • nginx学习

    nginx    nginx的核心配置项:        Core functionality:核心配置,Glob配置段            daemon:是否开启为守护进程        &nbs…

    2017-05-08
  • lvm逻辑卷管理

    #LVM 逻辑卷管理 一、创建pv        创建pv可以在物理硬盘(裸盘上创建),MBR类型的分区(要更改分区类型为linux lvm: 8e )。GPT分区也要更改分区类型为8e00 Linux LVM 。    还可以在RAID上创建。注意要在没有数据的分区上…

    Linux干货 2016-09-02
  • PageRank算法

    1. PageRank算法概述          PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。         是Google创始人拉里·佩奇和谢尔盖·布林于1997年构建早期的…

    Linux干货 2015-12-15
  • MySQL复制: Galera

    MySQL复制: Galera mysql 主从复制 前言 Galera Replication简介 MariaDB-Galera-Server 环境部署 配置步骤 总结 前言 之前介绍了MySQL复制的各种解决方案, 但是我个人还是感觉Galera最好用也最实用, 什么是Galera, 它强大在哪里, 这篇文章就带你认识这个强大的工具 Galer…

    Linux干货 2016-04-28
  • 运维挖坑埋坑之旅—-413 Request Entity Too Large

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1575160        好久没写博文了,天天忙的喘不过来气。最近是该总结总结前段时间的工作了,顺便缓解下这两天的霉…

    Linux干货 2016-08-15
  • 重定向和管道

    1.Linux给程序提供三种I/O设备 标准输入-0    默认接受来自键盘的输入 标准输出-1    默认输出到终端窗口 标准错误-2    默认输出到终端窗口 在dev下有个fd设备,打开的文件都有一个fd:file dexcriptor 文件描述符 I/O重定向:…

    2017-07-20

评论列表(1条)

  • stanley
    stanley 2016-04-05 23:04

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