String a ="abc{def{abcd{12345678}}ghi}jk";已知字符串a1=123,怎么把a1所在的大括号中的数据在字符串a取出来,只需要大括号中的数据
时间: 2024-03-29 12:40:09 浏览: 47
可以使用正则表达式来匹配大括号中的内容,然后再从匹配结果中取出需要的数据。下面是一个Java代码示例:
```java
import java.util.regex.*;
public class Main {
public static void main(String[] args) {
String a = "abc{def{abcd{12345678}}ghi}jk";
String a1 = "123";
// 使用正则表达式匹配大括号中的内容
Pattern pattern = Pattern.compile("\\{([^\\{\\}]*)\\}");
Matcher matcher = pattern.matcher(a);
while (matcher.find()) {
String match = matcher.group(1);
if (match.contains(a1)) {
System.out.println(match);
break;
}
}
}
}
```
上述代码中,使用正则表达式 `\{([^{}]+)\}` 匹配大括号中的内容,然后使用 `Matcher` 类的 `find()` 方法查找匹配结果。如果匹配结果中包含了目标字符串 `a1`,则输出匹配结果并结束循环。注意,这里使用了正则表达式中的非贪婪模式 `+?`,以确保匹配结果不包含其他大括号中的内容。
阅读全文