正則多行文本匹配(包含單引號的處理)


正則你說有技術含量沒有也沒有什么技術含量,你說沒有吧,它又很有技術含量! 這就是正則。

從開始到現在寫正則,最深刻的體會就上面那一句話。學正則其實不難,都是一些符號背后代表的含義,但是活用起來那就真的千變萬化了。 同一個案例讓不同的人來寫,可以寫出不同的正確答案出來! 上次用正則取網頁源碼的時候,必須先匹配出多行文本出來,因為我要取的值那一行沒什么特別的,是個很普通的文本,只有把前后幾行一起給它先匹配出來, 后面才能定位出我要的值!

例如: 我現在要取網頁里這樣的一個值,

<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