Java -12

김정현·2024년 4월 25일
0

JAVA

목록 보기
14/25

정규 표현식

-java.util.regex

Pattern 클래스 : 정규표현식 패턴 객체를 생성

-static compile("정규식 패턴") - Pattern 객체 생성
-Matcher matcher(CharSeqence str) : 패턴을 체크

Matcher 클래스 : 패턴의 일치 여부 체크, 일치하는 문자열 추출

  • boolean find() : 패턴에 일치 여부 체크, 다음 패턴으로 이동
public static void main(String[] args) {
        String str = "I like java and javascript";

        Pattern p1 = Pattern.compile("java");
        Matcher m1 = p1.matcher(str);
        System.out.println(m1.find());   // java
        System.out.println(m1.find());   // javascript
        System.out.println(m1.find());   // false

    }
  • String group() : 패턴에 일치하는 문자열 추출, 특정 그룹의 문자열 추출
System.out.println(m1.find());   // java
System.out.println(m1.group()); // 일치하는 문자열 추출함
  • boolean matches() : 패턴의 일치여부 체크 - 해당 패턴이 문자열 처음부터 등장

    public static void main(String[] args) {
           String str = "java";
    
           Pattern p1 = Pattern.compile("java");   //.*java.*로 표기하면 포함만 할시 ture 반환
           Matcher m1 = p1.matcher(str);
           boolean match = m1.matches();
           System.out.println(match);
       }
    참고) 문서에서 생성자가 존재하지 않을경우 대부분 static으로 메서드가 구현되어있다.


\b :
문자클래스 -> 백스페이스키
문자클래스 외부 -> 단어와 단어 사이 공백

\B :
단어 단어 사이 공백이 없는 패턴

패턴+ : 패턴을 1번 이상 반복

^: 문자클래스
[^...] : 부정 문자 클래스
[^0-9] : 숫자가 아닌문자
문자 클래스 외부 -> 시작하는 패턴 ^java -> java로 시작하는 패턴

$: 끝나는 패턴 -> java$ -> java로 끝나는 패턴
Pattern.CASE_INSENSITIVE : 대소문자 구분 X
Pattern.MULTILINE: 여러줄에 걸쳐 패턴 체크

패턴{반복횟수} : [0-9]{4}: 숫자 4개 \d{4}

패턴 {반복횟수,} : 패턴의 반복횟수 이상 : \d{4,} -> 숫자 4개 이상

패턴{시작횟수, 종료횟수} : \d{4,5} -> 숫자 4개 이상 5개 이하

패턴+ : 패턴의 1번 이상 반복 / 패턴{1,} // 최대 매치
패턴* : 패턴의 0번이상 반복 / 패턴{0, } // 최소 매치

패턴? : 패턴이 있어도 되고 없어도 되는 패턴 / 패턴{0,1}

단어1|단어2|단어3 : 단어1,단어2,단어3 중 하나라도 있으면 되는 패턴

(패턴) : 그룹핑

 - (ABC){3} : ABC 패턴이 3번 반복
 - 특정 그룹의 패턴으로 특정 그룹의 문자열을 추출
 - 이미지 태그에서 src="주소"
 

전방탐색 (?=패턴) -> 패턴 앞에 있는 패턴
예) \w(?=:) : 문자 앞에 있는 단어 여러개 패턴
전방 부정 탐색 (?!=패턴) 예) \w
(?!=:) : 문자가 아닌 앞에 있는 패턴

String 클래스 메서드 중 정규표현식을 지원 형식

자바스크립트

/패턴/ -> 정규표현식 객체
플래그
/패턴/i -> 대소문자 구분X (CASE_INSENSITIVE)
/패턴/m -> 여러줄에 걸쳐 패턴 체크(MULTILINE)
/패턴/g -> global : 전역에 걸쳐 패턴 체크

test(문자열) : 패턴이 일치하는지 체크

exec(문자열) : 패턴에 일치하는 문자열을 추출
-커서 이동하면서 다음 패턴의 문자열을 추출
-더 이상 찾을 패턴이 없으면 null을 반환

<a class="...." href="" ...>

대소문자 구분X, 전역에 걸쳐 체크
/패턴/ig

대소문자 구분X, 전역에 걸쳐 체크, 여러줄에 걸쳐 체크
/패턴/igm

0개의 댓글