我有一个正则表达式
String str = "A";
System.out.println(str.matches("/^[A]{1}$/")); //false
System.out.println(str.matches("/^A{1}$/")); //false
System.out.println(str.matches("/A{1}/")); //false
为什么他们都是假的?
如何纠正?
java regex 中不需要分隔符。
消除/
如果您想检查A
字符串中任何位置的单个字符,您的正则表达式将是A
如果要检查字符串中唯一的单个字符A
,请使用^A$
在 Java 正则表达式中你不需要
正则表达式分隔符/
锚点^
和$
当你使用的matches()
方法。matches()
尝试将正则表达式与完整的字符串进行匹配。如果你想在字符串的任何地方找到一个模式,你需要这个find()
方法。
并且在所有正则表达式中{1}
都是多余的
所以
System.out.println(str.matches("A"));
会是正确的。