[英]java regular expression [A-Z]{6}-[A-Z]{4}-[A-Z]{4}
我正在嘗試為此用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
檢查正則表達式是否匹配整個 String,因此
"aaa".matches("aa")
與...相同
"aaa".matches("^aa$")
由於String不能由正則表達式完全匹配,因此它將返回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
^[A-Z]{6}-[A-Z]{4}-[A-Z]{4}$
只是您不應該在開頭和結尾加上反斜杠。 改用^和$。 而且,我沒有看到您使用過Javscript的語法! Java!= Javascript
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.