正则表达式-备忘

正则表达式-备忘

   在学习java web的时候,无意之中联想到了正则表达式,很好奇是一种什么样的表达式,于是就谷歌了下。

在网上看了几家之言,对于正则表达式的大体概念是,这是一个用于检索、替换字符串的字符串操作命令。

在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。

所以,接下来便是正则表达式的语法了,区分大小写:

1、      字符:一般都为普通字符,但有一些被叫做“元字符”的特殊字符,类似于转义字符,有一些特殊的规则。可以使用反斜杠“\”可以忽略元字符,使得元字符的功能与普通字符一样。反斜杠本身也是一个元字符,这意味着反斜杠本身也可以通过相似的方法变回到普通字符的用途。

2、      点“.  :可以匹配任意一个字符。

3、      字符类:一组在方括号内的字符,表示可以匹配其中的任何一个字符。重要提示:字符类中和字符类外的规则有时不同,一些字符在字符类中是元字符,在字符类外是普通字符。一些字符正好相反。还有一些字符在字符类中和字符类外都是元字符,这要视情况而定!

4、      字符类的范围“-”:在字符集中,可以通过短横线来表示匹配字母或数字的范围。在字符集外,短横线唯一普通字符。

5、      反义符“^”:在字符类的起始位放反义符。

6、      转移字符类:\d (匹配任何一个数字,类似于[0-9]);\w  (匹配任意一个数字或者字母字符,类似于[0-9A-Za-z]);\s (匹配任意一个空字符,比如空格,制表符、回车或者换行)。另外,\D   \W  \S 便是对应的反义了。

7、      重复{}a{2}aa。指定重复次数的范围,比如a{3,5}aaa,aaaa,aaaaa

8、      关于重复的转移字符:?   表示{0,1}表示{0,}; +  表示{1,}

9、      非贪婪匹配:默认匹配最长字符,在居委加上一个问号之后,使得字符串重复不再匹配最长字符,而是最短字符。

10、    选择匹配“|

11、    分组()

12、    单词分隔符\b:在文本的开头和结尾通常也有单词分隔符, 单词分隔符本身并不是字符。它们的宽度为0

13、    换行符:^表示匹配行的开始位置;

$表示匹配行的结束位置;^&表示一个空行; 

^.*& 表示匹配全文内容,因为行的开始符号也是一个字符,"."会匹配这个符号。找到单独的一行,可以使用 ^.*?$

\^\$表示匹配字符串“^$

[$]表示匹配一个$。但是,[^]不是合法的正则表达式。记住在方括号中,字符有不同的特殊含义。要想在方括号内匹配^,必须用[\^]

与字符分隔符一样,换行符也不是字符。它们宽度为0.

14、    文本分界

在很多的正则表达式实现中,将^$作为文本的开始符号和结束符号。还有一些实现中,用\A\z作为文本的开始和结束符号。

15、    捕捉和替换:

使用()括号捕捉子串,捕获组从左到右编号,所以可以用左括号计数。替换:使用“\编号,比如\3-\1-\2,这些编号分别对应于捕获组编号。

16、    反向引用:引用捕获组。如([abc])\1  表示匹配aa或者bb或者cc

 

具体可以参考一下链接进行学习:

http://blog.jobbole.com/63398/

http://www.jb51.net/tools/zhengze.html

以及推荐一个比较好用的正则表达式在线编辑器:

 https://www.debuggex.com/

猜你喜欢

转载自cyw.iteye.com/blog/2243996