作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用 Java 编写一个正则表达式:
"/[A-Z]{6}-[A-Z]{4}-[A-Z]{4}/"
但是它不起作用。例如
"AASAAA-AAAA-AAAA".matches("/[A-Z]{6}-[A-Z]{4}-[A-Z]{4}/")
返回false
。
正确的做法是什么?
最佳答案
Java
!= JavaScript
,这里你不需要用 /
包围正则表达式,所以尝试使用
"AASAAA-AAAA-AAAA".matches("[A-Z]{6}-[A-Z]{4}-[A-Z]{4}")
否则你的正则表达式将搜索在开始和结束处也有 /
的子字符串。
顺便说一句,您需要知道 matches
检查正则表达式是否匹配整个字符串,所以
"aaa".matches("aa")
与
相同"aaa".matches("^aa$")
这将返回false
,因为正则表达式无法完全匹配字符串。
如果您想查找与正则表达式匹配的子字符串,则需要使用
String input = "abcd";
Pattern regex = Pattern.compile("\\w{2}");
Matcher matcher = regex.matcher(input);
while (matcher.find()){//this will try to find single match
System.out.println(matcher.group());
}
输出:
ab
cd
关于java正则表达式 [A-Z]{6}-[A-Z]{4}-[A-Z]{4},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24491764/
我是一名优秀的程序员,十分优秀!