我正在为下面的字符串尝试模式匹配表达式。但它不起作用。你能帮我这个吗?两侧只允许使用字母数字和下划线 $ 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.");
}
答案 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_]+)\\$");