小编yop*_*one的帖子

Java匹配器如何根据其值动态替换组

对于快速示例,我有以下字符串:

String s = "hey.there.man.${a.a}crazy$carl${a.b}jones
Run Code Online (Sandbox Code Playgroud)

我也有以下方法:

private String resolveMatchedValue(String s) {
    if(s.equals("a.a")) {
           return "A";
    else if(s.equals("a.b")) { 
           return "Wallet";
    else if(.....
    ....
 }
Run Code Online (Sandbox Code Playgroud)

我的模式是

 Pattern pattern = Pattern.compile("\\$\\{(.*?)\\}");
Run Code Online (Sandbox Code Playgroud)

因此,对于匹配$ {.*}的s中的每个子字符串,我希望调用resolveMatchedValue方法,并且应该替换它.理想情况下,在正则表达式过程之后应该如此

 s = "hey.there.man.Acrazy$carl$Walletjones
Run Code Online (Sandbox Code Playgroud)

我已经查看了类似的解决方案,但没有根据匹配的值动态替换匹配的值,并且无法使其工作

编辑:使用java8

java regex matcher java-8

0
推荐指数
1
解决办法
386
查看次数

标签 统计

java ×1

java-8 ×1

matcher ×1

regex ×1