正则表达式


正则表达式,又称规则表达式.Regular Expression,在代码中常简写为regex,regexp或者RE,计算机科学的一个概念.正则表达式通常被用来检索,替换那些符合某个模式(规则)的文本.1956<神经网事件的表示法>,1971年正则表达式被引用到Unix系统1984年office系列软件开始使用正则.C语言1971年诞生,C语言中没有正则,C语言要调用一个regcomp的一个库才能使用正则,库文件是调用系统的正则.

正则表达式分为:

DFA:MySQL   

NFA:Java  ,PHP,  Python   .NET

DosixNFA:可移植性的操作系统,一般服务器使用的引擎

正则表达式:  由定界符,原子,元字符,模式修正符号组成.

定界符:常用 /  / 双反斜杠,其他符合也可以:(  )   { }都可以

原子:最少的一个匹配单位(放在定界符中),在一个正则中,至少要有一个原子.

元字符:元字符不能当独使用的,用来修饰原子,是用来扩展功能和限定功能.写在定界符内

模式修正符号:修正,对模式(正则)修正,(写在定界符外面,右边)

:    在程序语言中,使用与perl兼容的正则表达式,通常都需要将模式表达式放入定界符之间

除了字母,数字和斜线”\”以外的如何字符都可以做为定界符,但是必须成对出现

原子:1打印字符(a-z)(A-Z)(0-9)能打印的字符都能做为原子

       2非打印字符:在使用非打印字符做为原子是最好在前面加”\”反斜杠

      \转译字符:1.可以将有意义的字符转成没有意义的原子符

                2.可以将没有意义的字符转成有的原子

                3.所有没有意义的字符,加上转译也没有意义的,可加可不加

非打印字符:  \f 换页符  \n行行符   \r回车符   \t制表符  \v垂直制表符

原子:  \d代表任意数字

      \D代表任意非数字

          \w代任意一个字(电脑内输出的字范围:a-z,A-Z,0-9,_)       

\W代表任意非字

\s代表空白

\S代表任意非空白

自定义原子表:

  [a-z,A-Z]从哪个区间范围

[^a-z,A-Z]除了列表中的元素,也就是列表以外的.

点能代表所有的原子.

元字符:不能再正则中单独使用,用来修饰原子的

      *用来修饰前面的原子可以出现0个或者一个或者多个(任意次)

      Str=”+/google/+”;

      Reg=”/go*gle/”;

      结果:google

+号用来修饰其前面的原子可以出现1个或多个,最少一次

? 号用来修饰其前面的原子可以出现1个或多个,最少一次

{m} m=3用来修饰其前面的原子可以出现m,不可多也不可少

{n,m} n=2,m=5用来修饰其前面的原子可以出现mn之间,包括nm

{2,}用来修饰其前面的原子可以出现最少2

|是或的关系,表示它两边的原子,主要有一个出现就可以,但是|的优先级最低

^\A表示必须以什么开始,这个必须写在正则表达式最前面;

$ \Z表示必须以什么结束,这个必须写在正则表达式最后面.

 

 

例子:

      ‘/^abd.*abc$/’  表示的意思是:必须以abc开始和abc结束中间可以出现任意字符任意次.的字符串

 

\b单词边界(空白的意思)

\B不是单词边界(非空白的)

Str=” this   is   island”

Reg=”/\bis\b/”       获取的是中间的is

Reg=”/\bis\B/”       获取的是land前面的is

Reg=”/\Bis\b/”       获取的是this的那个is  

( )的作用:

1.    改变优先级

2.    将小原子变成大原子

3.    子模式整个表达是一个大的模式,小括号中是每个独立的子模式:比如获取网址;分主机名,域名,顶级域名

4.    反向引用

?:取消子模式作用

“/\d(4)(-1/)\d(2)(-1/)\d(2)/”

 

 

 

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值