Java에 익숙해지기 시작했지만 여전히 정규식이 꽤 혼란 스럽습니다. 요소에 연속 된 대문자 2 개, 연속 된 대문자 3 개, 연속 된 대문자 4 개 또는 대문자 1 개, 공백 1 개, 대문자 1 개가 있는지 확인해야합니다. 이것이 제가 지금까지 가지고있는 코드이지만 이것을 수행하는 훨씬 더 나은 (그리고 훨씬 더 효율적인) 방법이 있다고 생각합니다.
public class First {
public static void main(String[] args) {
String one = "A scenario - CAPI 200 - 001";
String two = "A scenario - C T 200 - 001";
String three = "A scenaRio - CT 200 - 001";
String four = "A sCenario - CAP 200 - 001";
Pattern p = Pattern.compile("[A-Z][A-Z][A-Z][A-Z]");
Pattern q = Pattern.compile("[A-Z] [A-Z]");
Pattern r = Pattern.compile("[A-Z][A-Z]");
Pattern s = Pattern.compile("[A-Z][A-Z][A-Z]");
Matcher m =p.matcher(one);
if (m.find()){
System.out.println(m.group());
}
Matcher d =q.matcher(two);
if (d.find()){
System.out.println(d.group());
}
Matcher e =r.matcher(three);
if (e.find()){
System.out.println(e.group());
}
Matcher a =s.matcher(four);
if (a.find()){
System.out.println(a.group());
}
}
}
어떤 도움을 주시면 감사하겠습니다.
2-4 개의 대문자 또는 대문자, 공백, 대문자를 일치시키는 데 사용합니다.
([A-Z]{2,4})|([A-Z] [A-Z])
편집 : 일치하는 그룹을 구별해야 할 수도 있음을 깨달았습니다.
이 경우, 당신이하는 일은 잘못되지 않았지만 그 [A-Z]{2}
방법 으로 최적화 하여 정규식을 줄일 수 있습니다 . 코드가 수행해야하는 작업을 알려 주시면 필요에 맞는 솔루션을 더 잘 찾을 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다