Java 从字符串中提取子字符串
我有以下字符串:Java 从字符串中提取子字符串,java,regex,string,Java,Regex,String,我有以下字符串: mac1: 00:11:22:33:44:55 mac2: 66:77:88:99:00:11 model: PI-504 first_name: any_name device_type: baseboard serial_number: 668778542298745210 我想将所有值提取到一个数组中。如何使用Java实现它 public String[] getvaluesIntoStringArray(String str) { .... } 使用此正则表
mac1: 00:11:22:33:44:55
mac2: 66:77:88:99:00:11
model: PI-504
first_name: any_name
device_type: baseboard
serial_number: 668778542298745210
我想将所有值提取到一个数组中。如何使用Java实现它
public String[] getvaluesIntoStringArray(String str) {
....
}
使用此正则表达式(?)?
这个tempArr应该包含如下值:mac1:00:11:22:33:44:55,mac2:66:77:88:99:00:11,型号:PI-504,名字:任意名称,设备类型:基板,序列号:668778542298745210如果你想拆分新线,我认为应该这样做
public String[] getvaluesIntoStringArray(String str) {
return str.split("\\r?\\n");
}
请试一试
String[] result = str.split("\n");
您可以使用:
private static final Pattern=Pattern.compile(“*?:(*)”;
公共静态字符串[]GetValuesIntostingArray(字符串str){
Matcher-Matcher=PATTERN.Matcher(str);
列表值=新的ArrayList();
while(matcher.find())
add(matcher.group(1.trim());
返回values.toArray(新字符串[values.size()]);
}
此处代码:
public static void main(String[] args) {
List<String> result = new ArrayList<String>();
String str = "mac1: 00:11:22:33:44:55\n" +
"mac2: 66:77:88:99:00:11\n" +
"model: PI-504\n" +
"first_name: any_name\n" +
"device_type: baseboard\n" +
"serial_number: 668778542298745210";
Pattern pattern = Pattern.compile("^.*?:(.*)$", Pattern.MULTILINE);
Matcher matcher = pattern.matcher(str);
boolean find = matcher.find();
while(find) {
result.add(matcher.group(1));
find = matcher.find();
}
System.out.print(result);
}
publicstaticvoidmain(字符串[]args){
列表结果=新建ArrayList();
String str=“mac1:00:11:22:33:44:55\n”+
“mac2:66:77:88:99:00:11\n”+
“型号:PI-504\n”+
“名字:任何名字\n”+
“设备类型:基板\n”+
“序列号:668778542298745210”;
Pattern=Pattern.compile(“^.*?:(.*)”,Pattern.MULTILINE);
Matcher-Matcher=pattern.Matcher(str);
布尔查找=matcher.find();
while(查找){
结果:添加(匹配组(1));
find=matcher.find();
}
系统输出打印(结果);
}
您尝试了什么?您搜索了吗?还是?字符串[]
应该是什么样子?请提供示例输出。类似于{“mac1”、“00:11:22:33:44:55”、…}
或{“mac1”、“mac2”、…}
或{“00:11:22:33:55”、“66:77:88:99:00:11”、…}
或。。。
private static final Pattern PATTERN = Pattern.compile(".*?:(.*)");
public static String[] getvaluesIntoStringArray(String str) {
Matcher matcher = PATTERN.matcher(str);
List<String> values = new ArrayList<String>();
while (matcher.find())
values.add(matcher.group(1).trim());
return values.toArray(new String[values.size()]);
}
public static void main(String[] args) {
List<String> result = new ArrayList<String>();
String str = "mac1: 00:11:22:33:44:55\n" +
"mac2: 66:77:88:99:00:11\n" +
"model: PI-504\n" +
"first_name: any_name\n" +
"device_type: baseboard\n" +
"serial_number: 668778542298745210";
Pattern pattern = Pattern.compile("^.*?:(.*)$", Pattern.MULTILINE);
Matcher matcher = pattern.matcher(str);
boolean find = matcher.find();
while(find) {
result.add(matcher.group(1));
find = matcher.find();
}
System.out.print(result);
}