3 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
我想對(duì)@Avinash Raj 的答案發(fā)表評(píng)論,但我沒有足夠的 Repotation ......所以:
好像你想要這樣的東西,
...
\B\[([\w-]+)=([\w-]+)(?:,[\w-]+=[\w-]+)*\]
提供的正則表達(dá)式將僅匹配字符串中的第一對(duì)和最后一對(duì) key=value。有類似的東西:
[tag=val,tag1=val1,tag2=val2,tag3=val3]
正則表達(dá)式將只匹配tag
,val
,tag3
和val3
。如果你想匹配所有這些,我建議使用沒有正則表達(dá)式的純 go。這是應(yīng)該幾乎直接前進(jìn)的事情。
如果您實(shí)際上只需要匹配的索引,則可以使用上面的正則表達(dá)式,然后以其他方式解析標(biāo)簽。

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
golang正則表達(dá)式包接受的正確的正則表達(dá)式選擇多個(gè)括號(hào)中的標(biāo)簽表達(dá)式是:
rg := regexp.MustCompile(`\[([\w-]+)=([\w-]+)(?:,([\w-]+)=([\w-]+))*\]`)
看,如果那是你要找的...
更新:剛剛意識(shí)到@ndyakov 已經(jīng)回答了。

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
好像你想要這樣的東西,
(?<!\w)\[([\w-]+)=([\w-]+)(?:,[\w-]+=[\w-]+)*\]
或者
\B\[([\w-]+)=([\w-]+)(?:,[\w-]+=[\w-]+)*\]
\B
兩個(gè)單詞字符或兩個(gè)非單詞字符之間的匹配。
- 3 回答
- 0 關(guān)注
- 155 瀏覽
添加回答
舉報(bào)