寒假學習17

2022-06-13 20:18:10 字數 2237 閱讀 7265

昨天爬取了丁香園的實時更新的動態資訊,但是裡面有好多對專案無關的資訊(如下圖),所以就要進行資料的清洗,

想到了python的正規表示式,就對正規表示式進行了學習,現進行如下總結:

首先,python中的正規表示式大致分為以下幾部分:

一、元字元 (個人感覺常用到的)

.                    匹配任意字元(不包括換行符)

^                   匹配開始位置,多行模式下匹配每一行的開始

$                  匹配結束位置,多行模式下匹配每一行的結束

*                   匹配前乙個元字元0到多次

+                  匹配前乙個元字元1到多次

?                  匹配前乙個元字元0到1次

匹配前乙個元字元m到n次

\\                  轉義字元,跟在其後的字元將失去作為特殊元字元的含義,例如\\.只能匹配.,不能再匹配任意字元

字符集,乙個字元的集合,可匹配其中任意乙個字元

|                   邏輯表示式 或 ,比如 a|b 代表可匹配 a 或者 b

(...)               分組,預設為捕獲,即被分組的內容可以被單獨取出,預設每個分組有個索引,從 1 開始,按照"("的順序決定索引值

\d                 匹配乙個數字, 相當於 [0-9]

\d                 匹配非數字,相當於 [^0-9]

\w                 匹配數字、字母、下劃線中任意乙個字元, 相當於 [a-za-z0-9_]

\w                匹配非數字、字母、下劃線中的任意字元,相當於 [^a-za-z0-9_]

二、模式(我感覺常用到的)

i    ignorecase, 忽略大小寫的匹配模式

1 str = '

i love china!'2

3 regex = re.compile("

i love china!

", re.i)

4print

regex.match(str).group()5#

output> 'i love china'

s   dotall,此模式下 '.' 的匹配不受限制,可匹配任何字元,包括換行符

x    verbose,冗餘模式, 此模式忽略正規表示式中的空白和#號的注釋,例如寫乙個匹配郵箱的正規表示式

1 email = re.compile("

[\w+\.]+@[a-za-z\d]+\.(com|cn)")

23 email = re.compile("""

[\w+\.]+ # 匹配@符前的部分

4@ # @符

5[a-za-z\d]+ # 郵箱類別

6\.(com|cn) # 郵箱字尾

""", re.x)7#

上面兩種表示式效果相同

三、函式(常用的)

re.match函式,re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none,用group(num) 或 groups() 匹配物件函式來獲取匹配表示式。

re.search方法,re.search 掃瞄整個字串並返回第乙個成功的匹配,用group(num) 或 groups() 匹配物件函式來獲取匹配表示式。

上述二者的區別:re.match只匹配字串的開始,如果字串開始不符合正規表示式,則匹配失敗,函式返回none;而re.search匹配整個字串,直到找到乙個匹配。

findall,在字串中找到正規表示式所匹配的所有子串,並返回乙個列表,如果沒有找到匹配的,則返回空列表。(感覺用的最多)

re.compile 函式,compile 函式用於編譯正規表示式,生成乙個正規表示式( pattern )物件,供 match() 和 search() 這兩個函式使用。

四、正規表示式物件

re.regexobject

re.compile() 返回 regexobject 物件。

re.matchobject

這就是正規表示式的學習情況,但是最後的結果不盡人意,有好多的資料無法清洗出來,所以決定更換資料來源,在進行爬取

2月17日 寒假進度017

上午起床之後和媽媽去超市買菜,回來做了餡餅,嘎嘎嘎嘎,好吃,太好吃了!下午把昨天爬的訓練集整合到一起,然後重新訓練了文字分類的模型,但最後出來的結果不理想,準確率不夠高,甚至有點低 不過我訓練集只有17萬多,可能不夠,正在考慮換個演算法,之前用的邏輯回歸,現在也想用snownlp試試,情感分析的訓練...

寒假學習總結

一曲新詞酒一杯,去年天氣舊亭台。夕陽西下幾時回?無可奈何花落去,似曾相識燕歸來。小園香徑獨徘徊。晏殊的 浣溪紗 時間飛快,眼一閉一睜,寒假的學習就接近了尾聲。計算機方面 這個寒假主要是為了學習三層,而用vb.net重構了一回機房收費系統。之前用了vb實現了這個系統,當時沒有想過什麼三層之類的,所以在...

寒假學習總結

寒假學習總結 今天已經是二月的最後一天了,開學已經兩天了。在過去的乙個寒假,雖然時間短暫,但多少有些收穫,現在對這個寒假的學習生活來乙個小小的總結。在寒假中,主要學習的是有關acm的一些必須的演算法。同時也在刷刷題,練習練習自己的程式設計能力,美其名曰 積累 量。在寒假中,學習了基本的一些搜尋演算法...