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


正则你说有技术含量没有也没有什么技术含量,你说没有吧,它又很有技术含量! 这就是正则。

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

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

<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]*?的意思就是匹配任意字符,后面的问号就是非贪婪匹配。就是遇到即停止继续匹配。能理解? 好了,正则不难,但是活用起来就不是一朝一夕了。 后面,还碰到好的思路我也会写下来!

最后我们说说单引号的问题,单引号和双引号这个在用正则的时候都需要注意,因为是文本型,单引号单独的放进常量文本里面!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM