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

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

去正則表達(dá)式查找?guī)蔡?hào)的單詞

去正則表達(dá)式查找?guī)蔡?hào)的單詞

Go
躍然一笑 2021-08-30 16:30:14
我試圖在兩個(gè)詞之間找到一個(gè)子字符串,但我的起始詞包含一個(gè)撇號(hào),我似乎無(wú)法匹配它。例如,在下面這句話中bus driver drove steady although the bus's steering was going nuts.我的搜索的正確答案應(yīng)該是:steering was going nuts并不是:driver ... nuts我試過(guò)這個(gè)re := regexp.MustCompile("(?s)bus[\\\'].*?nuts")我也試過(guò)這個(gè):re := regexp.MustCompile("(?s)bus'.*?nuts")似乎無(wú)法讓它發(fā)揮作用。
查看完整描述

2 回答

?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊

您可以使用字符串文字(帶反引號(hào))來(lái)包含單引號(hào)和捕獲組:


re := regexp.MustCompile(`(?s)bus'.\s+(.*?nuts)`)

看這個(gè)例子:


var source_txt = `bus driver drove steady although the bus's steering was going nuts.`


func main() {

    fmt.Printf("Experiment with regular expressions.\n")

    fmt.Printf("source text:\n")

    fmt.Println("--------------------------------")

    fmt.Printf("%s\n", source_txt)

    fmt.Println("--------------------------------")


    // a regular expression

    regex := regexp.MustCompile(`(?s)bus'.\s+(.*?nuts)`)

    fmt.Printf("regex: '%v'\n", regex)

    matches := regex.FindStringSubmatch(source_txt)

    for i, v := range matches {

        fmt.Printf("match %2d: '%s'\n", i+1, v)

    }

}

輸出:


Experiment with regular expressions.

source text:

--------------------------------

bus driver drove steady although the bus's steering was going nuts.

--------------------------------

regex: '(?s)bus'.\s+(.*?nuts)'

match  1: 'bus's steering was going nuts'

match  2: 'steering was going nuts'

的FindStringSubmatch():


識(shí)別 s 中正則表達(dá)式最左邊的匹配項(xiàng)及其子表達(dá)式的匹配項(xiàng)(如果有)


這match[1]將是第一個(gè)捕獲組。


查看完整回答
反對(duì) 回復(fù) 2021-08-30
?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

我的搜索的正確答案應(yīng)該是"steering was going nuts"......


如果您希望該子字符串作為您的匹配結(jié)果,您應(yīng)該相應(yīng)地調(diào)整您的正則表達(dá)式。


re := regexp.MustCompile("(?s)bus's (.*?nuts)")

rm := re.FindStringSubmatch(str)

if len(rm) != 0 {

  fmt.Printf("%q\n", rm[0]) // "bus's steering was going nuts"

  fmt.Printf("%q",   rm[1]) // "steering was going nuts"

}


查看完整回答
反對(duì) 回復(fù) 2021-08-30
  • 2 回答
  • 0 關(guān)注
  • 285 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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