Java 根据匹配情况,使用替换字符串替换字符串中的正则表达式模式
我有一个包含变量的特殊字符串。任何以“@”符号开头的单词都是此字符串中的变量 示例字符串: 这是我的字符串,这是其中的@变量。例如,@hello是 另一个变量 我想执行一个操作,用%-variable-%替换此类特殊字符串中的任何常规变量@-variable- 因此,上面的示例foostring将变为So(在此操作之后): 这是我的字符串,其中有一个%variable%。例如,%hello%是 另一个变量 问题: 如何使用正则表达式执行此操作?在Javascript中:Java 根据匹配情况,使用替换字符串替换字符串中的正则表达式模式,java,javascript,python,regex,Java,Javascript,Python,Regex,我有一个包含变量的特殊字符串。任何以“@”符号开头的单词都是此字符串中的变量 示例字符串: 这是我的字符串,这是其中的@变量。例如,@hello是 另一个变量 我想执行一个操作,用%-variable-%替换此类特殊字符串中的任何常规变量@-variable- 因此,上面的示例foostring将变为So(在此操作之后): 这是我的字符串,其中有一个%variable%。例如,%hello%是 另一个变量 问题: 如何使用正则表达式执行此操作?在Javascript中: var repl = s
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)
您使用哪种语言实现此功能?您已经标记了Java、Javascript和Python!我正在用Javascript实现它。由于这是一个一般性问题(与语言无关),因此最好有多种语言的解决方案,以方便不同的读者。哇,我不知道在替换为正则表达式时,我们有办法访问匹配的参数。感谢有趣的解决方案@anubhava;对于python解决方案也是如此,@thg435