天天看点

正则的分组及断言

正则的分组及断言

首先是 分组 :

就拿匹配< title>xxx< /title>标签来说,简单的正则可以这样写:

<title>.*</title>
           

可以看出,上边表达式中有两个title,完全一样,其实可以通过分组简写。表达式如下:

<(title)>.*</\1>
           

对于分组而言,整个表达式永远算作第0组,在本例中,第0组是

<(title)>.*</\1>
           

,然后从左到右,依次为分组编号,因此,(title)是第1组。

然后是 断言:

想指定xxx前肯定会出现< title>,就用正后发断言,表达式:

(?<=<title>).*
           

向指定xxx后边肯定会出现< /title>,就用正先行断言,表达式:

.*(?=</title>)
           

两个加在一起,就是

(?<=<title>).*(?=</title>)
           

如此便能直接匹配返回中间的xxx文字了,而不会将便签也返回作为字符串。

继续阅读