我有以下字符串。
#firstName.concat(' ').concat(#lastName)
我需要得到以"#"开头的名字。但它不应该被其他特殊字符所遵循。所以在这种情况下,我需要" firstName"和" lastNAme"作为输出。我尝试了以下方法。但它抛出的模式不匹配exeption。任何帮助将不胜感激。
private static void getTokens(String value) {
Pattern p = Pattern.compile("\\(^#\\)");
Matcher m = p.matcher(value);
String s = m.group(1);
System.out.println("answer : " + s);
}
答案 0 :(得分:3)
你需要一个像
这样的简单正则表达式#(\w+)
匹配#
,然后使用\w+
捕获1个以后的单词字符,然后您需要在.find()
循环内运行匹配while
。
Pattern p = Pattern.compile("#(\\w+)");
Matcher m = p.matcher(value);
while (m.find()) {
String s = m.group(1);
System.out.println("answer : " + s);
}
请参阅Java demo