2013-04-18 73 views
1

,當我在文本中使用pattren正則表達式中的小混淆在| (管)

"(see|see also) [\w\d]+" 

see page 
see also page 

但是輸出相匹配是

see page 
see also 

如果IM互換看,又見

"(see also|see) [\w\d]+" 

的輸出是

see page 
see also page 

我以爲兩者都是一樣的。我能知道爲什麼會發生這種情況嗎?

回答

6

刪除更改並保留see [\w\d]+將與字符串「see also page」匹配,因爲它滿足see also。正則表達式與變換(至少在這種情況下)的工作方式是,它會嘗試將每個選項按順序與其餘模式進行匹配,並在成功完成後立即停止,或者在返回時失敗。當您反轉交替時,它會首先嚐試與see also相匹配,但這會失敗並顯示「see page」。

將它寫成更有意義see(also)? [\w\d]+

+0

謝謝:)我有完美的方法 – Civa 2013-04-18 06:06:47