2012-10-23 108 views

回答

4

您可以使用此正則表達式匹配

@\[User:(\d+)\|(.*?)\]\s*\2 

,然後你可以用它來替換,其中$ 1 $ 2指基團。

<a href="#/users/$1">$2</a> 
1

這是Java代碼,會爲你做的工作:

String str = 
"@jhon.p @[User:151|Jhon Carter] Jhon Carter @sunil.p @[User:102|Sunil Nadar] Sunil Nadar"; 
Matcher m = Pattern.compile("@\\[User:(\\d+)\\|([^]]+)\\]\\s+\\2").matcher(str); 
StringBuffer buf = new StringBuffer(); 
while (m.find()) { 
    String link = "<a href=\"#/users/" + m.group(1) + "\">" + m.group(2) + "</a>"; 
    m.appendReplacement(buf, link); 
} 
m.appendTail(buf); 
System.out.printf("Converted String is: %s%n", buf); 

OUTPUT:

Converted String is: @jhon.p <a href="#/users/151">Jhon Carter</a> @sunil.p <a href="#/users/102">Sunil Nadar</a> 
相關問題