第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Go:一次通過正則表達(dá)式 FindAll 和 ReplaceAll

Go:一次通過正則表達(dá)式 FindAll 和 ReplaceAll

Go
BIG陽 2021-07-08 14:00:06
我正在解析網(wǎng)頁以獲取標(biāo)簽內(nèi)的一些值,但我對標(biāo)簽不感興趣,只對內(nèi)容感興趣。我正在使用 regexp.FindAll 來獲取所有匹配的表達(dá)式(包括標(biāo)簽),然后使用 ReplaceAll 來替換每個(gè)子表達(dá)式,刪除標(biāo)簽。當(dāng)然,兩次運(yùn)行正則表達(dá)式需要兩倍的時(shí)間,我想避免它。有沒有辦法同時(shí)應(yīng)用這兩個(gè)函數(shù),或者等效的正則表達(dá)式?當(dāng)然,我可以制作一個(gè)刪除標(biāo)簽的函數(shù),但在某些情況下可能會更復(fù)雜,因?yàn)榭勺冮L度的標(biāo)簽(如 )和正則表達(dá)式可以解決這個(gè)問題。我的代碼的一個(gè)簡單示例在這里(它不會在操場上運(yùn)行):http : //play.golang.org/p/uGKjzmylSYfunc main() {    res, err := http.Get("http://www.elpais.es")    if err != nil {        panic(err)    }    body, err := ioutil.ReadAll(res.Body)    fmt.Println("body: ", len(body), cap(body))    res.Body.Close()    if err != nil {        panic(err)    }    r := regexp.MustCompile("<li>(.+)</li>")    // Find all subexpressions, containing the label <li>    out := r.FindAll(body, -1)    for i, v := range out[:10] {        fmt.Printf("%d: %s\n", i, v)    }    //Replace to remove the label.    out2 := make([][]byte, len(out))    for i, v := range out {        out2[i] = r.ReplaceAll(v, []byte("$1"))    }    for i, v := range out2[:10] {        fmt.Printf("%d: %s\n", i, v)    }}順便說一下,我知道正則表達(dá)式不能用于解析 HTML。我只對一些最里面的標(biāo)簽感興趣,對結(jié)構(gòu)或嵌套不感興趣,所以我想這沒問題:)
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 304 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號