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

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

如何從 Golang 中的長字符串中解析電子郵件地址

如何從 Golang 中的長字符串中解析電子郵件地址

Go
滄海一幻覺 2022-12-19 17:56:12
如何從 Golang 中的長字符串中僅提取電子郵件地址?例如:"a bunch of irrelevant text fjewiwofjfjvnvkdlslsosiejwoqlwpwpwo mail=jim.halpert@gmail.com,ou=f,c=US mail=apple.pie@gmail.com,ou=f,c=US mail=hello.world@gmail.com,ou=f,c=US mail=alex.alex@gmail.com,ou=f,c=US mail=bob.jim@gmail.com,ou=people,ou=f,c=US mail=arnold.schwarzenegger@gmail.com,ou=f,c=US"這將返回所有電子郵件的列表:[jim.halpert@gmail.com, apple.pie@gmail.com, etc...]每個電子郵件地址都以“mail=”開頭,以逗號“,”結(jié)尾。
查看完整描述

4 回答

?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗 獲得超6個贊

你可以使用 golang 的原始包是 regexp.Compile 或 regexp.MustCompile


r, _ := regexp.Compile(regexEmail)

    newVariable := `a bunch of irrelevant text fjewiwofjfjvnvkdlslsosiejwoqlwpwpwo

 mail=jim.halpert@gmail.com,ou=f,c=US

 mail=apple.pie@gmail.com,ou=f,c=US

 mail=hello.world@gmail.com,ou=f,c=US

 mail=alex.alex@gmail.com,ou=f,c=US

 mail=bob.jim@gmail.com,ou=people,ou=f,c=US

 mail=arnold.schwarzenegger@gmail.com,ou=f,c=US`


    fmt.Printf("%#v\n", r.FindStringSubmatch(newVariable))

    fmt.Printf("%#v\n", r.SubexpNames())


查看完整回答
反對 回復(fù) 2022-12-19
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗 獲得超10個贊

你可以使用這個包來做到這一點:


https://github.com/hamidteimouri/htutils/blob/main/htregex/htregex.go



// Emails finds all email strings

func Emails(text string) []string {

    return match(text, EmailsRegex)

}


查看完整回答
反對 回復(fù) 2022-12-19
?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗 獲得超13個贊

為此,您需要將 long go string 分解為您需要的部分。您可以使用正則表達(dá)式進(jìn)行過濾和搜索,以匹配您在上面看到的電子郵件模式。


這是一段使用正則表達(dá)式的代碼,首先獲取該部分,"mail="然后進(jìn)一步格式化電子郵件,刪除尾隨,


 import (

    "fmt"

    "regexp"

    "strings"

)


func main() {

    var re = regexp.MustCompile(`(?m)mail=[A-Za-z.@0-9]+\,`)

    var str = `a bunch of irrelevant text fjewiwofjfjvnvkdlslsosiejwoqlwpwpwo

 mail=jim.halpert@gmail.com,ou=f,c=US

 mail=apple.pie@gmail.com,ou=f,c=US

 mail=hello.world@gmail.com,ou=f,c=US

 mail=alex.alex@gmail.com,ou=f,c=US

 mail=bob.jim@gmail.com,ou=people,ou=f,c=US

 mail=arnold.schwarzenegger@gmail.com,ou=f,c=US`


    for i, match := range re.FindAllString(str, -1) {

        fmt.Println(match, "found at index", i)

        email := strings.Split(match, "=")[1]


        email = strings.ReplaceAll(email, ",", "")


        fmt.Print(email)

    }

}


查看完整回答
反對 回復(fù) 2022-12-19
?
尚方寶劍之說

TA貢獻(xiàn)1788條經(jīng)驗 獲得超4個贊

雖然我同意用戶 datenwolf 的評論,但這里是另一個不涉及正則表達(dá)式的版本。


它還處理更復(fù)雜的電子郵件格式,包括本地部分中的逗號。使用正則表達(dá)式不容易實現(xiàn)的東西。


請參閱https://stackoverflow.com/a/2049510/11892070



import (

    "bufio"

    "fmt"

    "strings"

)


var str = `a bunch of irrelevant text fjewiwofjfjvnvkdlslsosiejwoqlwpwpwo

mail=jim.halpert@gmail.com,ou=f,c=US

mail=apple.pie@gmail.com,ou=f,c=US

mail=hello.world@gmail.com,ou=f,c=US

mail=alex.alex@gmail.com,ou=f,c=US

mail=bob.jim@gmail.com,ou=people,ou=f,c=US

mail=arnold.schwarzenegger@gmail.com,ou=f,c=US

mail=(comented)arnold.schwarzenegger@gmail.com,ou=f,c=US

mail="(with comma inside)arnold,schwarzenegger@gmail.com",ou=f,c=US

mail=nocommaatall@gmail.com`


func main() {


    var emails []string


    sc := bufio.NewScanner(strings.NewReader(str))


    for sc.Scan() {

        t := sc.Text()

        if !strings.HasPrefix(t, "mail=") {

            continue

        }

        t = t[5:]


        // Lookup for the next comma after the @.

        at := strings.Index(t, "@")

        comma := strings.Index(t[at:], ",")

        if comma < 0 {

            email := strings.TrimSpace(t)

            emails = append(emails, email)

            continue

        }

        comma += at

        email := strings.TrimSpace(t[:comma])

        emails = append(emails, email)

    }


    for _, e := range emails {

        fmt.Println(e)

    }


}


查看完整回答
反對 回復(fù) 2022-12-19
  • 4 回答
  • 0 關(guān)注
  • 245 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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