3 回答
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
正如另一位發(fā)帖人所述,這些是環(huán)視功能,是用于更改匹配內(nèi)容和時(shí)間的特殊構(gòu)造。這說:
(?<=#) match but don't capture, the string `#`
when followed by the next expression
[^#]+ one or more characters that are not `#`, and
(?=#) match but don't capture, the string `#`
when preceded by the last expression
因此,這將匹配兩個(gè)#s 之間的所有字符。
在許多情況下,先行和后退非常有用。例如,考慮規(guī)則“匹配所有b后跟一個(gè)” a。您的第一次嘗試可能類似于b[^a],但那是不對的:這也將與buin bus或boin相匹配boy,但是您只想使用in b。而且它不會匹配bin cab,即使它后面沒有一個(gè)a,因?yàn)橐矝]有匹配的字符了。
要正確執(zhí)行此操作,您需要先行執(zhí)行:b(?!a)。這表示“匹配一個(gè),b但a之后不匹配,也不要成為匹配的一部分”。因此,它將僅匹配bin bolo,這就是您想要的;同樣,它將與bin 匹配cab。
- 3 回答
- 0 關(guān)注
- 3868 瀏覽
添加回答
舉報(bào)
