欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

正则表达式-备忘  

程序员文章站 2024-02-18 11:29:58
...

正则表达式-备忘

   在学习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/