2014-10-28 102 views
1

我想寫一個正則表達式語句,如果滿足以下條件,將取代所有0正則表達式替換零在某些情況下

例字符串:

0,10,9A,0,0,20,0LD,0 

改變所有零到T0

  • 如果0在前面有一個1-9,請不要更改它
  • 如果第一個字符或最後一個字符爲0,則將其更改爲一個T0
  • 如果零有它的零變化到T0相同的字母之後它作爲前

上面的字符串可以是任何順序和應占在delims一個可能的改變後的字母(,)

所以上面的字符串應該是:

T0,10,9A,T0,T0,20,T0LD,T0 

這是我到目前爲止有:

0(?=[A-Z]|[1-9])|0 

這是我得到

T0,1T0,9A,T0,T0,2T0,T0LD,T0 

的問題是被替換他們應該不是10,20,30,40,50,60,70,80,90。

回答

2

你可以使用負回顧後做到這一點。

(?<![1-9])0 

或者脫離您當前的模式。

(?<![1-9])0(?=[A-Z1-9]?) 

Live Demo

+0

幹得好!效果很好 – Xavier 2014-10-28 03:31:24