字符串模式与java中的正则表达式匹配

时间:2013-12-02 05:45:29

标签: java regex

我正在为下面的字符串尝试模式匹配表达式。但它不起作用。你能帮我这个吗?两侧只允许使用字母数字和下划线 $ sign将在那里。 Ex字符串:Test_1,23_test_2,test3。

        String text = "$test_1$";
    Pattern p = Pattern.compile("$([A-Za-z0-9_])$");


    Matcher m = p.matcher(text);
    m.matches();
    if (m.find()) {
      System.out.println("Matched: " + m.group(1));
    } else {
      System.out.println("No match.");
    }

3 个答案:

答案 0 :(得分:3)

你的正则表达式应该是:

Pattern p = Pattern.compile("(\\$[A-Za-z0-9_]*\\$)");

答案 1 :(得分:1)

你可以简单地做......

s.matches("\\$[a-zA-Z0-9_]*\\$")

答案 2 :(得分:0)

$是一个正则表达式元字符,应该被转义,试试这个

    Pattern p = Pattern.compile("\\$([A-Za-z0-9_]+)\\$");