您的位置:首页 > 其它

正则多行文本匹配(包含单引号的处理)

2015-04-13 18:25 295 查看
正则你说有技术含量没有也没有什么技术含量,你说没有吧,它又很有技术含量! 这就是正则。

从开始到现在写正则,最深刻的体会就上面那一句话。学正则其实不难,都是一些符号背后代表的含义,但是活用起来那就真的千变万化了。 同一个案例让不同的人来写,可以写出不同的正确答案出来! 上次用正则取网页源码的时候,必须先匹配出多行文本出来,因为我要取的值那一行没什么特别的,是个很普通的文本,只有把前后几行一起给它先匹配出来, 后面才能定位出我要的值!

例如: 我现在要取网页里这样的一个值,

<td>"name"</td>


如果要name这个值,就用这一行用正则取出来是基本行不通的。因为"<td>"标签在网页里面太普通了,到处都是,而我就只需要这个name。 怎么办? 这个时候,我们就需要扩大范围。

<div>"唯一"
<td>"name"</td>
<div>


这个时候我们用扩大范围的思路,会发现越扩大范围,唯一性的概率越大。于是,我们就想办法先匹配出上面那段! 神奇的正则派上用场了。

开始关键字([\s\S]*?)结束关键字 ----应用实例:

<table>
<tr>
<td>单元格1</td><td>单元格2</td>
</tr>
<tr>
<td>单元格3</td><td>单元格4</td>
</tr>
</table>


正则表达式.创建 (“<tr>([\s\S]*?)</tr>”),通过这段正则,我们就可以匹配出"<tr>"和“</tr>”之间代码文本了!

这里很巧妙,[\s\S]*?的意思就是匹配任意字符,后面的问号就是非贪婪匹配。就是遇到即停止继续匹配。能理解? 好了,正则不难,但是活用起来就不是一朝一夕了。 后面,还碰到好的思路我也会写下来!

最后我们说说单引号的问题,单引号和双引号这个在用正则的时候都需要注意,因为是文本型,单引号单独的放进常量文本里面!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: