2013-10-16 74 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 –