正则表达式常用语法

Posted duheng-biu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式常用语法相关的知识,希望对你有一定的参考价值。

正则表达式的作用:  

  对于现在的程序,几乎每一个都会用到字符串,虽然许多编程语言都会对String有着很好的支持,但是在遇到一些繁琐的验证,其自带的方法检测会很吃力,所以出现了正则表达式来对字符串进行处理,常用的会有对特殊字符串的匹配将其替换,或者验证某种格式的字符串。

常用符号的意义(Java):

  技术分享图片

  技术分享图片

  
  边界处理(空格处理)

      技术分享图片

  注:此方法在java开发文档中提取,但是在其他的语言中也同样适用。

 括号在表达式中的意义:

  ():

    圆括号一般会在表达式中会将分为组,一对括号为一组,而且在使用的时候可以方便的取出某一组来进行操作。

  []:

    方括号[]会匹配其中的某一个字符,相当方括号里面的各个字符为待选择项目,所匹配的字符必须是其中的一项,同时里面也可以是表达式。

其次有些符号在[]可能发生变化,如:^在[]表示取反,而^ 没在[]中的时候就表示字符串的开头。

  {}

    花括号表示限制长度。如:.{1}表示匹配一个任意字符,{1,3}表示至少一个最多3个。

 特殊符号:

  

  锚号“^”和“$”

    锚号是用来把正则“锚”在字符串的特定位置的。最普通的锚号是“^”和“$”,当“^”用作锚号的时候,表示一行的开始;当“^”用作锚号的时候,表示一行的结束,这样很容易的就可验证字符串的开头或者结束。

    ps:还有匹配目标文本的开始和结束采用 A 和  或者 z ;在大多数的语言中,A 和 ^ 是等价的, 和 z 的区别在于是否会匹配换行符号 Z 可以将换行符号算在里面,而 z 则不可以。

  词界“”“B”

     会匹配一个单词的开始或者结束。

    B 会匹配文本中  不会匹配的每一个位置。

  连字符“-”

    用来划定范围,表示某一范围内的任何字符。比如/[1234567890]/会感觉很不方便。如果表示为/[0-9]/就会显得精简的多。

  问号“?”

    表示一种异或关系;比如我们在语料库中搜索诗人“李白”或者“李太白”,此时方括号就无法帮助我们,因为[]只能表示xx或者XX,但是不能表示有xx或者没xx。此时可以用“?”来表示前一个字符有或者无。

  “|”和&&

    “|”表示或者的意思;而&&表示且。

贪婪模式与非贪婪模式

  .*:出现在表达式中时为贪婪模式,会将所有的匹配都找到;比如:在html中有许多标签<div>part1</div><div>part2</div><div>part3</div><div>part4</div> 使用<div>.*</div>匹配到的是:<div>part1</div><div>part2</div><div>part3</div><div>part4</div>

  .*?: 则为非贪婪模式:他只要找到匹配后就不会找下一个了;使用<div>.*?</div>匹配到的是:<div>part1</div>。

(?<=exp) (?=exp)零宽断言

  (?<=exp) 表示匹配exp之后的,(?=exp)表示匹配exp之前的。


以上是关于正则表达式常用语法的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式简单语法及常用正则表达式

正则表达式简单语法以及常用正则表达式

正则表达式常用语法

正则表达式

Shell脚本------正则表达式与常用命令(sort,uniq,tr,cut)

正则表达式详解