【发布时间】:2016-04-03 09:53:07
【问题描述】:
我有一个字符串
NAME: Colin AGE:20 EMAIL;TYPE=PREF,INTERNET:colin@gmail.com
我想提取 : 模式之后的字符串。 我想要的输出是
Colin
20
colin@gmail.com
我该怎么做?
【问题讨论】:
标签: java android regex pattern-matching
我有一个字符串
NAME: Colin AGE:20 EMAIL;TYPE=PREF,INTERNET:colin@gmail.com
我想提取 : 模式之后的字符串。 我想要的输出是
Colin
20
colin@gmail.com
我该怎么做?
【问题讨论】:
标签: java android regex pattern-matching
尝试将^NAME: ([ \.\w]+) AGE:(\d+) EMAIL;TYPE=PREF,INTERNET:([@\.\w]+)$ 替换为\1\n\2\n\3。
【讨论】:
【讨论】:
此方法即使您的值中有多个单词也可以使用,例如NAME: 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());
要深入了解该模式,了解匹配的外观(并在将来需要时调整它们),请查看this pattern on regex101.com。
请注意,在 Java 中,您需要对特殊字符进行两次转义,即当您在 regex101.com 上使用 \w 时,您需要在代码中使用 \\w。
【讨论】: