-1

我有一个正则表达式

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

为什么他们都是假的?

如何纠正?

4

2 回答 2

1

java regex 中不需要分隔符。

消除/


如果您想检查A字符串中任何位置的单个字符,您的正则表达式将是A

如果要检查字符串中唯一的单个字符A,请使用^A$

于 2013-06-21T06:47:35.700 回答
1

在 Java 正则表达式中你不需要

  1. 正则表达式分隔符/

  2. 锚点^$当你使用的matches()方法。matches()尝试将正则表达式与完整的字符串进行匹配。如果你想在字符串的任何地方找到一个模式,你需要这个find()方法。

  3. 并且在所有正则表达式中{1}都是多余的

所以

System.out.println(str.matches("A"));

会是正确的。

于 2013-06-21T06:50:52.693 回答