2014-02-19 186 views
1

我想用以下替換replaceAll()正則表達式:的replaceAll在Java

#one# -> <element name="one"> 
#two# -> <element name="two"> 

...

我需要什麼樣的正則表達式?

這裏是一個天真的嘗試:

replaceAll("#[\w]#", "<element name=\"[?1]\""); 
// my hope is that I can remember a value somehow (`[\w]`) and use it for the substitution ([?1]) 
// which is, written like this, a nonsense 

回答

2

您需要使用:

str = str.replaceAll("#(\\w+)#", "<element name=\"$1\">"); 
  • 你需要\\w+ OR [^#]+匹配超過1個字符
  • 你需要把它們在括號內使其成爲捕獲組
  • 您可以使用back-通過使用$1參考此匹配組n替換字符串