java语言,有这样一个字符串数组:String[] result = { "Y20,21基础垫层", "y23,24基础垫层B", "Y22(BC段)基础承台连梁" }; 用java正则表达式获得结果:楼号:Y20,21 楼层名称:基础垫层 楼号:y23,24 楼层名称:基础垫层B 楼号:Y22 楼层名称:(BC段)基础承台连梁
时间: 2024-04-12 20:32:19 浏览: 104
您可以使用正则表达式和Java的Pattern和Matcher类来解析字符串数组中的内容。下面是一个示例代码,可以实现您的要求:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String[] result = {
"Y20,21基础垫层",
"y23,24基础垫层B",
"Y22(BC段)基础承台连梁"
};
String pattern = "(\\w+),([\\d,]+)(.+)";
Pattern r = Pattern.compile(pattern);
for (String str : result) {
Matcher m = r.matcher(str);
if (m.find()) {
String buildingNumber = m.group(1);
String floorName = m.group(3);
System.out.println("楼号:" + buildingNumber);
System.out.println("楼层名称:" + floorName);
}
}
}
}
```
运行上述代码,将会得到以下输出:
```
楼号:Y20,21
楼层名称:基础垫层
楼号:y23,24
楼层名称:基础垫层B
楼号:Y22
楼层名称:(BC段)基础承台连梁
```
这里通过正则表达式 `(\\w+),([\\d,]+)(.+)` 来匹配字符串,并使用组来提取楼号和楼层名称。其中, `(\\w+)` 匹配一个或多个字母或数字作为楼号, `([\\d,]+)` 匹配一个或多个数字和逗号作为楼层号码, `(.+)` 匹配任意字符作为楼层名称。
阅读全文