java - 使用java正则表达式提取值

标签 java regex

我从正则表达式开始,我想从这样的字符串中提取值

String test="[ABC]Name:User:Date: Adresse ";

我想要提取姓名、用户、日期和地址 我可以用子字符串和分割来解决这个问题

String test = "String test="[ABC]Name:User:Date: Adresse ";
        String test2= test.substring(5,test.length());
        System.out.println(test2);
        String[] chaine = test2.split(":");
        for(String s :chaine)
        {
            System.out.println("Valeur " + s);
        }

但我想尝试使用正则表达式,我做到了

pattern = Pattern.compile("^[(ABC)|:].");

但它不起作用

你能帮我吗?

非常感谢

最佳答案

String#split 确实是完成您想要做的事情的最佳方法。话虽如此,使用正则表达式,以下内容将为您提供相同的输出:

    Pattern p = Pattern.compile("^(?:\\[ABC\\])([^:]+):([^:]+):([^:]+):([^:]+)$");
    Matcher m = p.matcher(test);
    while (m.find()) {
        System.out.println("Valeur " + m.group(1)); // Name
        System.out.println("Valeur " + m.group(2)); // User
        System.out.println("Valeur " + m.group(3)); // Date
        System.out.println("Valeur " + m.group(4)); // Address
    }

关于java - 使用java正则表达式提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943705/

相关文章:

java - 使用 Java Reflections 调用 invoke 方法时出现 IllegalArgumentException

java - 如何按降序检索 firebase 数据

java - 为什么需要强制转换为 (LayoutManager) 来设置布局?

c# - 替换特定字符之间的数据

c# - 我可以在正则表达式 (C#) 的模式中使用变量吗

java - Spring Data Rest PATCH 禁止更新特定字段

java - 数组索引越界

javascript - 在保留换行符的同时从文本中删除空格

Java 正则表达式 - "()"括号

regex - grep - 匹配文件中带有前导空格的路径