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

时间:2017-02-08 06:01:48

标签: java regex

我有一个字符串 字符串l ="名称: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 );
        }
    }

任何建议都将表示赞赏谢谢

1 个答案:

答案 0 :(得分:1)

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

\S+\s*:\s*\S+

或者这个:

\w+\s*:\s*\w+

演示:https://regex101.com/r/EgXlcD/6

正则表达式:

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

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

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