在下面的代码中,我使用 matches()
方法尝试了许多表达式来检查字符串 str
是否仅包含字母、点或撇号。
但是,它不会为此字符串返回 true
,例如 one o'clock。
:
String str = "One o'clock.";
System.out.println(str.matches("[^a-zA-Z'. ]"));
最佳答案
您有两个问题:
- 您的正则表达式正在使用 negated character class
[^...]
- 您的正则表达式只能匹配仅包含一个字符的字符串。
因此请使用标准字符类[a-zA-Z'。 ]
并让您的正则表达式匹配字符串中的一个或多个字符,请使用 +
quantifier .
System.out.println(str.matches("[a-zA-Z'. ]+"));
关于java - 如何在 matches() 中使用正则表达式来查找字母、点和撇号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30665013/