1. 程式人生 > >所有換行匹配 -----------------------------乾貨(純手打)

所有換行匹配 -----------------------------乾貨(純手打)

正則類:

[\s\D]*    匹配換行和空格

   今天想使用正則表示式來獲取一段文字中的任意字元。

於是很隨意得就寫出如下匹配規則: (.*) 結果執行之後才發現,無法獲得換行之後的文字。

於是查了一下手冊,才發現正則表示式中,“.”(點符號)匹配的是除了換行符“\n”以外的所有字元。同時,手冊上還有一句話:要匹配包括 '\n' 在內的任何字元,請使用像 '[.\n]' 的模式。

      於是我將正則表示式的匹配規則修改如下: ([.\n]*),當然,如果是在C#程式中直接寫到話,需要改為([.\\n]*) 結果再次執行程式,發現什麼內容也取不到了。

     我百思不得其解,又將其修改為如下規則: ([.|\n]*) 以及 (\n.]*) 結果還是不行,什麼內容都取不到。看來點符號和換行符卯上勁了~ 然後上網一查,雖然沒有查出上述規則到底是什麼地方出問題了,但是查出了一個解決辦法,經過一試,果然可以匹配包括換行符在內的任意字元,以下為正確的正則表示式匹配規則: ([\s\S]*) 同時,也可以用 “([\d\D]*)”、“([\w\W]*)” 來表示。

([\s\S]*?)  加上問號 表示最短匹配

 item['price'] = dd.re_first('¥(.*?)\s*</i>')


¥1.90/課時                        </i>

 

 

scrapy框架中CSS選擇器:

comment_nums = response.css('.btn-bluet-bigger.href-style.hide-on-480::text').extract()[0].strip()