java 正则匹配${}内的字符 返回list<String>
时间: 2024-03-10 16:44:07 浏览: 60
可以使用 Java 中的正则表达式类 `java.util.regex.Pattern` 和 `java.util.regex.Matcher` 来进行匹配,并将匹配到的结果存入一个 `List<String>` 中。
以下是示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args) {
String str = "Hello ${world}, ${java} is awesome! ${regex} is also awesome!";
Pattern pattern = Pattern.compile("\\$\\{([^\\}]+)\\}");
Matcher matcher = pattern.matcher(str);
List<String> list = new ArrayList<>();
while (matcher.find()) {
list.add(matcher.group(1));
}
System.out.println(list);
}
}
```
输出结果为:
```
[world, java, regex]
```
解释一下代码的关键步骤:
1. 使用 `Pattern.compile()` 方法编译正则表达式。
2. 使用 `Matcher.matcher()` 方法在输入字符串中查找匹配项。
3. 使用 `Matcher.find()` 方法在查找到的匹配项中迭代,使用 `Matcher.group(1)` 方法获取每个匹配项中 `${}` 内的字符串,并将其添加到 `List<String>` 中。注意,这里使用的是第一个捕获组,即 `${}` 内的字符串。
阅读全文