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);
    }