簡體   English   中英

Java正則表達式[AZ] {6}-[AZ] {4}-[AZ] {4}

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM