Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配模式java和grep字符串_Java_Android_Regex_Pattern Matching - Fatal编程技术网

匹配模式java和grep字符串

匹配模式java和grep字符串,java,android,regex,pattern-matching,Java,Android,Regex,Pattern Matching,我有一根绳子 NAME: Colin AGE:20 EMAIL;TYPE=PREF,INTERNET:colin@gmail.com 我想在:pattern之后提取字符串。 我想要的输出是 Colin 20 colin@gmail.com 怎么做?尝试替换^NAME:([\.\w]+)AGE:(\d+)电子邮件;TYPE=PREF,INTERNET:([@\.\w]+)$带有\1\n\2\n\3这应该可以工作 :\s*([^\s]+) 即使您的值中有多个单词,例如名称:Colin Jon

我有一根绳子

NAME: Colin AGE:20 EMAIL;TYPE=PREF,INTERNET:colin@gmail.com
我想在:pattern之后提取字符串。 我想要的输出是

Colin
20
colin@gmail.com

怎么做?

尝试替换
^NAME:([\.\w]+)AGE:(\d+)电子邮件;TYPE=PREF,INTERNET:([@\.\w]+)$
带有
\1\n\2\n\3
这应该可以工作

:\s*([^\s]+)


即使您的值中有多个单词,例如
名称:Colin Jones
,此方法也会起作用

String str = "NAME: Colin Jones AGE:20 EMAIL;TYPE=PREF,INTERNET:colin@gmail.com";

str = str.replaceAll("([\\w,=;]+?):", "##DELIMITER##");

for( String value : str.split("##DELIMITER##") )        
    System.out.println(value.trim());
要深入解释模式,查看匹配的外观(并在将来需要时进行调整),请查看

请注意,在Java中,需要两次转义特殊字符,即在regex101.com上使用
\w
时,需要在代码中使用
\\w