Java正则表达式

正则表达式的应用举例:

         手机输入法、window文件搜索、Linux中列出文件、一般用户注册。

正则表达式规则:

         [abc]表示某一位字符是abc中的任意一个

         [a-c]表示某一位字符是a到c中的任意一个     

         [^abc] 表示某一位字符不是abc中的任意一个

         [2-5]表示某一位字符是2-5中的任意一个数字

         \d{5}匹配连续出现的数字个数为5位

         \d{2,4}匹配连续出现的数字个数为2-4位(可以无上限,如:\d{2,})

         +表示至少一次,比如:\d+表示数字至少出现一次

         *(星号)表示至少0次比如:\d*表示数字出现0次或一次或多次

         ?表示出现一次或不出现,比如:\d? 表示数字出现一次或者不出现

字符边界:

         ^与字符串开始的地方匹配,比如:^ab表示以ab开头字符串,在多行模式中每一行都是一个开头,

         $与字符串结束的地方匹配,比如:ab$以ab结尾的字符串

         \b匹配一个单词边界,比如:box\b 的意思是box后面不能有其他任何字符;\bbox就是字符串必须以box开头,box前面不能有任何字符。

选择符和分组:

         |表示两个表达式是或的关系,匹配左边或右边

         ()      1)在被修饰匹配次数的时候括号中表达式可以作为一个整体被修饰。

                   2)去匹配结果的时候,括号中匹配到的内容可以被单独得到。

                   3)每一对括号会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号。捕获元素编号为零的第一个捕获是由整个正则表达式模式匹配的文本。如:匹配                    邮箱:([\w-]+)@([\w]+).com  Java中是([\\w-]+)@([\\w]+).com(举个栗子,实际项目中不能这么写)。

反向引用(\nnn):

1)  每一对括号会分配一个编号,使用()的捕获的顺序从1开始自动编号。

2) 通过反向引用,可以对分组已获取的字符串进行引用。

正则表达式的匹配模式:

         IGNORECASE忽略大小写

         SINGLELINE单行模式

         MUTILINE多行模式  \A  \Z

匹配模式:

         贪婪模式:

                   匹配字符越多越好,默认的是贪婪模式

         非贪婪模式(勉强模式)

                   匹配字符越少越好,修饰匹配次数的特殊字符后面再加一个“?”

 

posted @ 2015-11-13 15:46  流氓公子  阅读(342)  评论(0编辑  收藏  举报