2013-06-27 24 views
2

由於標題暗示我只想替換開始並跳過以開頭的內容!這是代碼片段。更換時,它必須跳過#Admin - :它不是跳過與啓動字#我想替換以#開頭的字符串中的內容,如果它以#開始#它必須跳過它

String test = "Hello #Admin Welcome this is Your welcome page !#Admin This is #Admin" 

注意!。

String out = test.replaceAll("#Admin", "MyAdministrator"); 
log.debug("OutPut: "+out); 

OutPut: Hello MyAdministrator Welcome this is Your welcome page !MyAdministrator This is MyAdministrator 

我該如何忽略以感嘆號開頭的單詞。

謝謝。

回答

3

使用否定後視?

String test = "Hello #Admin Welcome this is Your welcome page !#Admin This is #Admin"; 
String out = test.replaceAll("(?<!!)#Admin", "MyAdministrator"); 
System.out.println("OutPut: "+out); 

後視是(?<!!)

+0

+1,打我3秒:) – jlordo

+0

@jlordo是啊,這是非常接近! – Jerry

+0

感謝它的作品:) – mgk22

1

試試這個

String out = test.replaceAll("(?<!!)#Admin", "MyAdministrator"); 

這就是所謂的負回顧後,見模式API

+0

我想問一下還有一件事是,如果我有HashMap包含regexpression和值在這個實例中取代它不起作用字符串out = test.replaceAll(「(? mgk22

相關問題