2013-10-16 107 views
2

我有一個包含變量的特殊字符串。任何以「@」符號開頭的單詞都是該字符串中的一個變量。用替換字符串替換字符串中的正則表達式模式取決於匹配

foostring

這是我的字符串,這是它@Variable。例如,@hello是 另一個變量

我要進行替換任何普通變量@ -variable-在這樣的特殊字符串與%-variable-%的操作。

所以上面的實施例foostring串會變得如此(該操作後):

這是我的字符串,這是一個%變量%在它。例如,%你好%是 另一個變量

問題: 如何進行使用正則表達式此操作?

+0

哪種語言,你在執行本?你已經標記了Java,Javascript和Python! – AeroX

+0

我正在用Javascript實現它。由於它是一個普遍的問題(獨立於語言),爲了不同的讀者的利益,最好有多種語言的解決方案。 –

回答

5

在Javascript中:

var repl = str.replace(/@(\w+)/g, '%$1%'); 

在Java:

String repl = str.replaceAll("@(\\w+)", "%$1%"); 

在Python中,爲了完整性

import re 
repl = re.sub(r'@(\w+)', r'%\1%', strng) 
+0

@ thg435:感謝您添加Python代碼。 – anubhava

+0

哇,我不知道我們有一種方法來訪問匹配的參數,當用正則表達式替換。感謝有趣的解決方案@anubhava;對於python解決方案也是@ thg435 –