자바 에서 정규 표현 식 으로()내 내용 추출

어제 작은 문제 가 발생 했 습 니 다.일부 사용 자 를 대량으로 처리 해 야 합 니 다.프론트 데스크 에서 들 려 온 사용자 형식 은 다음 과 같 습 니 다.괄호 가운데 내용 을 추출 해 야 합 니 다(괄호 없 음)
교사 10(0010)교사 11(0011)교사 9(009)교사 12(0012)교사 13(0013)교사 14(0014)는 자바 의 String.split()와 substring()으로 해결 하려 고 했 으 나 여러 번 처리 해 야 하기 때문에 정규 표현 식 을 사용 했다.문법 을 많이 잊 지 는 않 았 지만 단언 을 사용 하 는 것 이 편리 하 다.RegexBuddy 를 열 어 보 니 쉽게 해결 되 었 습 니 다다음은 자바 실현 코드 입 니 다.

public List<String> getTeacherList(String managers){
        List<String> ls=new ArrayList<String>();
        Pattern pattern = Pattern.compile("(?<=\\()(.+?)(?=\\))");
        Matcher matcher = pattern.matcher(managers);
        while(matcher.find())
            ls.add(matcher.group());
        return ls;
    }
마지막 으로 사용 할 0 너비 단언 을 첨부 합 니 다.
너 그 럽 게 단언 하 다
(?=exp)
exp 앞 위치 일치
(?<=exp)
exp 뒤의 위치 와 일치 합 니 다.
(?!exp)
뒤에 있 는 것 과 일치 하 는 것 은 exp 의 위치 가 아 닙 니 다.
(?앞 에 exp 가 아 닌 위치 와 일치 합 니 다.

좋은 웹페이지 즐겨찾기