gpt4 book ai didi

java - 使用正则表达式查找以 $ 符号开头的字符串

转载 作者:行者123 更新时间:2023-12-02 06:42:04 27 4
gpt4 key购买 nike

String str = "hai ${name} .... Welcome to ${sitename}....";

从此 str 中,我需要将 ${name} 替换为“jack”,将 ${sitename} 替换为“google”

可以用正则表达式吗?

有没有其他最快的方法来替换字符串。

编辑:

name 和 sitename 是 str 变量,是动态的。

1.所以首先我必须找到 key 。
例如:这里 name , sitename 是关键
2.然后我有一个包含键值对的 HashMap 。
根据键值,我必须替换 str 变量中的字符串。

最佳答案

import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Replacer
{
public static String replacePlaceHolders(String text)
{
Map<String, String> fields = new HashMap<>();

fields.put("name", "jack");
fields.put("sitename", "google");

Pattern p = Pattern.compile("\\$\\{(.*?)\\}");
Matcher matcher = p.matcher(text);

StringBuffer result = new StringBuffer();

while (matcher.find()) {
String key = matcher.group(1);

if (!fields.containsKey(key)) {
continue;
}

matcher.appendReplacement(result, fields.get(key));
}

matcher.appendTail(result);

return result.toString();
}

public static void main(String[] args)
{
System.out.println(
replacePlaceHolders("hai ${name} .... Welcome to ${sitename}...."));
}
}

关于java - 使用正则表达式查找以 $ 符号开头的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19050873/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com