2013-03-29 46 views
0

我有這個字符串:如何修改此字符串與正則表達式

str = "<table><tr><td>!img! images/image1.jpeg !*img!</td><td> 12:34</td></tr><tr><td>!img! images/image2.jpeg !*img!</td><td>12:35</td><tr></table>; 

我需要<img src="text...." />

更換的!img! text.... !*img!每次出現,我不是很好的正則表達式,我嘗試了許多東西但沒有工作,我能夠拿出最好的是:

str.replace(/(!img!)(.+)(!\*img!)/g, '<img src="$2" />'); 

但是與上面的代碼的問題是,它選擇第一!img!發生和最後的!*img!發生忽略它們之間的一切!

任何幫助,將不勝感激。

回答

1

正則表達式默認是貪婪的,.+會匹配儘可能多的文本。嘗試添加一個?之後它使你的正則表達式是/(!img!)(.+?)(!\*img!)/

問號會給加號「懶惰」的行爲,所以它會嘗試匹配儘可能少的文字。

+0

我沒有成像,它有這樣一個簡單的修復!但它工作:)謝謝 – razzak