我试图在java中的字符串末尾标识任何特殊字符('?','。',',')。这是我写的:
public static void main(String[] args) {
Pattern pattern = Pattern.compile("{.,?}$");
Matcher matcher = pattern.matcher("Sure?");
System.out.println("Input String matches regex - "+matcher.matches());
}
如果预计为false
,则返回true
。请建议。
答案 0 :(得分:3)
使用"sure?".matches(".*[.,?]")
。
String#matches(...)
使用^
和$
对正则表达式进行anto-ancho,无需手动添加它们。
答案 1 :(得分:2)
试试这个
Pattern pattern = Pattern.compile(".*[.,?]");
...
答案 2 :(得分:2)
这是你的代码:
Pattern pattern = Pattern.compile("{.,?}$");
Matcher matcher = pattern.matcher("Sure?");
System.out.println("Input String matches regex - "+matcher.matches());
你有两个问题:
{ and }
而不是字符类[ and ]
Matcher#matches()
代替Matcher#find
。 matches
方法匹配整个输入行,find
在字符串中的任何位置执行搜索。将您的代码更改为:
Pattern pattern = Pattern.compile("[.,?]$");
Matcher matcher = pattern.matcher("Sure?");
System.out.println("Input String matches regex - " + matcher.find());