java 替换El表达式内容
时间: 2023-07-07 17:06:42 浏览: 174
替换 EL 表达式内容可以通过字符串操作和正则表达式实现。假设有一个字符串 str 包含了 EL 表达式,如下所示:
```
String str = "Hello, ${name}! Today is ${day}.";
```
我们可以通过正则表达式匹配出 `${}` 中的内容,然后用指定的值替换掉。示例代码如下:
```
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReplaceEL {
public static void main(String[] args) {
String str = "Hello, ${name}! Today is ${day}.";
String name = "John";
String day = "Monday";
Pattern pattern = Pattern.compile("\\$\\{[^}]+\\}");
Matcher matcher = pattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
String group = matcher.group();
String key = group.substring(2, group.length() - 1);
String value = "";
if ("name".equals(key)) {
value = name;
} else if ("day".equals(key)) {
value = day;
}
matcher.appendReplacement(sb, value);
}
matcher.appendTail(sb);
System.out.println(sb.toString());
}
}
```
输出结果为:
```
Hello, John! Today is Monday.
```
这里使用了正则表达式 `\\$\\{[^}]+\\}` 匹配 `${}` 中的内容。其中:
- `\\$` 表示匹配 `$` 字符;
- `\\{` 和 `\\}` 表示匹配 `{}` 字符;
- `[^}]+` 表示匹配除了 `}` 以外的任意字符,重复一次或多次。
阅读全文