Java 正则表达式在冒号上拆分字符串

Java 正则表达式在冒号上拆分字符串,java,regex,Java,Regex,我有一根绳子 字符串l=name:kumar年龄:22关系:单身 它是从UI动态提交的,现在我需要将上面的字符串拆分为 name: kumar age: 22 relationship: single 我的代码是: Pattern ptn = Pattern.compile("([^\\s]+( ?= ?[^\\s]*)?)"); Matcher mt = ptn.matcher(l); while(mt.find()) { String col_da

我有一根绳子 字符串l=name:kumar年龄:22关系:单身 它是从UI动态提交的,现在我需要将上面的字符串拆分为

name: kumar
age: 22 
relationship: single
我的代码是:

Pattern ptn = Pattern.compile("([^\\s]+( ?= ?[^\\s]*)?)");
    Matcher mt = ptn.matcher(l);
    while(mt.find())
    {
        String col_dat=mt.group(0);
        if(col_dat !=null && col_dat.length()>0)
        {
            System.out.println("\t"+col_dat );
        }
    }

如有任何建议,将不胜感激。谢谢您

您可以使用此正则表达式:

\S+\s*:\s*\S+
或者这个:

\w+\s*:\s*\w+
演示:

正则表达式:

\S+-1个或多个非空格字符

\s*-0个或更多空格字符


\w+-0或更多\w即[A-Za-z0-9_]个字符。

分栏=冒号?当您的输入中不需要任何=符号时,为什么在您的模式中有一个=?@shmosel i假设他指的是分号,但他的输入中也没有任何分号。我不知道这意味着什么。但如果我的名字是彼得·约翰,那么我只得到了一个petter@kumar然后,您可以使用正向前瞻在空间上拆分正则表达式=\w+\s*:。演示:嗨?=\w+\s*:这不起作用。。。你能帮我把这个处理掉吗。。谢谢您的支持。@kumar请尝试string.split\\?=\\w+\\s*:\\。请检查关于如何使用正则表达式拆分字符串的其他答案。我没有接触过java。