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

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

正則表達式使用Go編程語言查找命名的捕獲組

正則表達式使用Go編程語言查找命名的捕獲組

Go
冉冉說 2021-05-19 17:13:32
我正在尋找一個正則表達式,以在(其他)正則表達式字符串中找到命名的捕獲組。例如:我想找到(?P<country>m((a|b).+)n),(?P<city>.+)并(?P<street>(5|6)\. .+)在下面的正則表達式:/(?P<country>m((a|b).+)n)/(?P<city>.+)/(?P<street>(5|6)\. .+)我嘗試了以下正則表達式來查找命名的捕獲組:var subGroups string = `(\(.+\))*?`var prefixedSubGroups string = `.+` + subGroupsvar postfixedSubGroups string = subGroups + `.+`var surroundedSubGroups string = `.+` + subGroups + `.+`var capturingGroupNameRegex *regexp.RichRegexp = regexp.MustCompile(    `(?U)` +     `\(\?P<.+>` +     `(` +   prefixedSubGroups + `|` + postfixedSubGroups + `|` + surroundedSubGroups + `)` +     `\)`) ?U使貪婪量詞(+和*)變得非貪婪,并使非貪婪量詞(*?)變得貪婪。Go正則表達式文檔中的詳細信息。但這不起作用,因為括號未正確匹配。
查看完整描述

1 回答

?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

正則表達式無法正確匹配任意嵌套的括號,因為任意(遞歸)嵌套都不能用正則語言描述。

一些現(xiàn)代的regex樣式確實支持遞歸(Perl,PCRE)或平衡匹配(.NET),但Go并不是其中之一(文檔明確指出,Go的regex軟件包所基于(?R)RE2庫不支持Perl的構(gòu)造。)。您需要構(gòu)建遞歸下降解析器,而不是正則表達式。


查看完整回答
反對 回復 2021-05-24
  • 1 回答
  • 0 關(guān)注
  • 347 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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