如何获取以某个字符开头的字符串的字母,避免使用其他特殊字符

时间:2016-12-06 11:14:12

标签: java regex velocity

我有以下字符串。

#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);
}

1 个答案:

答案 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