Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据匹配情况,使用替换字符串替换字符串中的正则表达式模式_Java_Javascript_Python_Regex - Fatal编程技术网

Java 根据匹配情况,使用替换字符串替换字符串中的正则表达式模式

Java 根据匹配情况,使用替换字符串替换字符串中的正则表达式模式,java,javascript,python,regex,Java,Javascript,Python,Regex,我有一个包含变量的特殊字符串。任何以“@”符号开头的单词都是此字符串中的变量 示例字符串: 这是我的字符串,这是其中的@变量。例如,@hello是 另一个变量 我想执行一个操作,用%-variable-%替换此类特殊字符串中的任何常规变量@-variable- 因此,上面的示例foostring将变为So(在此操作之后): 这是我的字符串,其中有一个%variable%。例如,%hello%是 另一个变量 问题: 如何使用正则表达式执行此操作?在Javascript中: var repl = s

我有一个包含变量的特殊字符串。任何以“@”符号开头的单词都是此字符串中的变量

示例字符串:

这是我的字符串,这是其中的@变量。例如,@hello是 另一个变量

我想执行一个操作,用%-variable-%替换此类特殊字符串中的任何常规变量@-variable-

因此,上面的示例foostring将变为So(在此操作之后):

这是我的字符串,其中有一个%variable%。例如,%hello%是 另一个变量

问题: 如何使用正则表达式执行此操作?

在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)

您使用哪种语言实现此功能?您已经标记了Java、Javascript和Python!我正在用Javascript实现它。由于这是一个一般性问题(与语言无关),因此最好有多种语言的解决方案,以方便不同的读者。哇,我不知道在替换为正则表达式时,我们有办法访问匹配的参数。感谢有趣的解决方案@anubhava;对于python解决方案也是如此,@thg435