2013-05-22 58 views
1

我要翻譯的當前正則表達式:正則表達式相當於*?

(.*?)<w:t([^>]*)> 

不使用*?(基於ActionScript3)

意思是我想的<w:t

中第一次出現,我可以用([^<]*)之前得到的一切,但問題是我想匹配例如<w:r裏面的第一個parenthisis。

是否可以用正則表達式來完成,還是我必須手動完成?

+0

編輯:撤回評論。 –

+0

。*的問題在於它不會在第一次出現<?w:t – edi9999

+0

「?」時停止。不應該在那裏 – Kodiak

回答

2

我很驚訝AS3不會支持非貪婪!不過,我知道至少是AS3完全支持lookhead斷言,這意味着你可以這樣做:

((?:.(?!<w:t))*) 

這樣做是捕捉每一個字符,一個接一個,只要字符後面沒有<w:t

小心不要將!<翻轉爲<!否則您會無意中斷言後面的條件!

編輯

嗯,AS3 應該支持非貪婪。我懷疑你的問題在別處。例如,或許正則表達式的剩餘部分出現問題,導致它與「第一個」實例不匹配,導致它「繼續查找」,直到確實與匹配的後續實例相匹配。

+0

你說得對,正則表達式仍然不起作用。因爲我不知道前瞻斷言,無論如何,這有助於我,我將使用它來處理整個正則表達式。 – edi9999

相關問題