위해 나는, 선택적으로 고정 문자열 -PREM
(하이픈 PREM) 뒤에 숫자 나 알파벳이나 숫자가 될 수 있습니다 NBTAAA-PREM_001
및 NBTAAA_001
는 정규식 문자열 검증
NBTAAA
부분과 같은 패턴으로 오는 문자열을 검증하기위한 정규식이 필요 _
에 밑줄을 긋고 그 뒤에 세 개의 영숫자가옵니다.
"NBTAAA_001"의 경우 '-PREM'(하이픈 PREM)이없는 정규 표현식이 필요합니다.
나는 코드를 작성했습니다 :
public static void main(String[] args) {
List<String> input = new ArrayList<String>();
input.add("NBTAAA-PRIM_001");
input.add("NBTAAA_001");
for (String ssn : input) {
// String ssn = "NBTAAA-PRIM_001";
if (ssn.indexOf("-") != -1) {
int PRIMbeginIndex = ssn.indexOf("-") + 1;
int PRIMEndIndex = PRIMbeginIndex + 4;
String d = ssn.substring(PRIMbeginIndex, PRIMEndIndex);
if (d.equalsIgnoreCase("PRIM")) {
if (ssn.matches("^([A-Za-z0-9]+(?=.*?\bPRIM\b)+_[A-Za-z0-9]{3})$")) {
System.out.println(" PRIM image value : " + ssn);
}
}
}
else {
if (ssn.matches("^([A-Za-z0-9]+_[A-Za-z0-9]{3})$")) {
System.out.println("NORMAL IMAGE value : " + ssn);
}
}
}
}
를하지만 제대로 작동하지 않습니다. 이 문제를 해결하도록 도와주세요.
PRIM 또는 PREM입니까? – nhahtdh
그것은 오직 PREM입니다. –
'PREM' 부분이 대문자와 소문자를 구별하지 않게하고 싶습니까? – nhahtdh