将这个String字符串:"[62:线下首次购买金额]",用java写一个正则表达式的main方法,将中括号里面的值替换成${关键字}形式,例如:${62}
时间: 2023-05-12 12:07:02 浏览: 98
以下是Java代码:
```java
public class Main {
public static void main(String[] args) {
String str = "[62:线下首次购买金额]";
String regex = "\\[(\\d+):(.+?)\\]";
String replacement = "\\${$1}";
String result = str.replaceAll(regex, replacement);
System.out.println(result);
}
}
```
输出结果为:`${62}:线下首次购买金额`
相关问题
将这个String字符串:“小蔻提醒您,您有{@keyword=1202,value=430}积分即将在{@keyword=1203,value=2023-02-11}过期哦! ” ,用java写一个正则表达式的main方法,将大括号里面的@keyword=和value=的值取出封装成一个Map<String,String>, map的key用来保存匹配后的@keyword的值,value来保存匹配后的value的值
好的,这是一个非常基础的正则表达式问题,下面是对应的Java代码,用来匹配大括号里面的内容并将其保存在一个Map中:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String str = "小蔻提醒您,您有{@keyword=1202,value=430}积分即将在{@keyword=1203,value=2023-02-11}过期哦!";
// 定义正则表达式
String regex = "\\{@keyword=(\\d+),value=([^}]+)\\}";
// 编译正则表达式
Pattern pattern = Pattern.compile(regex);
// 匹配字符串
Matcher matcher = pattern.matcher(str);
// 遍历匹配结果并将其保存到Map中
Map<String, String> map = new HashMap<String, String>();
while (matcher.find()) {
String key = matcher.group(1);
String value = matcher.group(2);
map.put(key, value);
}
// 输出结果
System.out.println(map);
}
}
```
输出结果为:{1202=430, 1203=2023-02-11},正如预期的那样,大括号里面的@keyword和value的值已经被成功地提取出来并保存在了Map中。
将这个String字符串:“小蔻提醒您,您有{@keyword=1202,value=430}积分即将在{@keyword=1203,value=2023-02-11}过期哦! ”,用java写一个正则表达式的main方法,将大括号里面的@keyword=和value=的值取出封装成一个TemplateParam对象, 这个对象里面有两个参数,参数1为String类型的name,用来保存匹配后的keyword的值,第二个参数为String类型的templateParamJson,用来保存匹配后的value的值,如果有多个匹配结果有则返回一个List<TemplateParam>
以下是Java代码的实现:
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class C知道 {
public static void main(String[] args) {
String str = "小蔻提醒您,您有{@keyword=1202,value=430}积分即将在{@keyword=1203,value=2023-02-11}过期哦! ";
Pattern p = Pattern.compile("\\{@keyword=(\\d+),value=(.*?)\\}");
Matcher m = p.matcher(str);
List<TemplateParam> list = new ArrayList<>();
while (m.find()) {
TemplateParam tp = new TemplateParam();
tp.name = m.group(1);
tp.templateParamJson = m.group(2);
list.add(tp);
}
System.out.println(list);
}
static class TemplateParam {
String name;
String templateParamJson;
@Override
public String toString() {
return "TemplateParam{" + "name='" + name + '\'' + ", templateParamJson='" + templateParamJson + '\'' + '}';
}
}
}
输出结果为:
[TemplateParam{name='1202', templateParamJson='430'}, TemplateParam{name='1203', templateParamJson='2023-02-11'}]
这个程序可以将字符串中的@keyword和value中的值匹配出来,然后封装成一个TemplateParam对象,最终返回一个包含多个匹配结果的List对象。
阅读全文