java 正则表达式 以标点符号结尾 怎么判断

我想判断一个英文单词是不是以标点符号结尾,我用了边界匹配器$,但是结果总是不对,求高人指导!
自己写的一个测试程序:
public class RegexTest
{
public static void main(String[] args)
{
if("a:".matches(":$"))
System.out.print("yes");
}
}

按照那个$的意思,以:结尾就应该被匹配,但是这里运行的结果却是没有匹配,请问这是为什么?

[\w\+]+
这样写还可以匹配下划线_
如果不需要下划线的话,就这样[0-9a-za-z\+]+
注意:有些语言还需要把\转义一下
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
你正则有错误, 改为

if("a:".matches(".*:$"))就匹配了

还有, 以xx结尾可以用endWith追问

哦~我以为只要有$就是结尾了不用管前面,原来还是要用.*来代表。这样就对了~谢谢~

本回答被提问者采纳
相似回答