Regular expressions(정규표현식)

sjy·2022년 4월 16일
0

코딩공부

목록 보기
27/49

정규표현식

정규식이라고 하기도 한다. 원하는 문자의 조합을 찾거나 구성할 때 사용한다. 여기에 .test라는 메서드를 활용하면 탐색 후 포함 여부를 boolean값으로 반환한다.

1. 기본사용

/aaa/처럼 /로 양 옆을 감싸서 사용한다. 이때는 정확히 'aaa'를 포함하고 있어야 탐색된다.
aaaaaabbbaaaa는 탐색할 수 있고(.test 이용시 true 반환) aa aa는 탐색할 수 없다(.test 이용시 false 반환). 공백이 있기 때문이다.

2. 사용규칙

a. 구성 방법

패턴구분자 문자열패턴 패턴구분자종료 패턴변경자의 순서로 작성한다.

b. 문자 종류

| 선택
apple|APPLE 는 apple 또는 APPLE 라는 뜻
[] 문자 클래스
문자 또는 문자열 탐색 [12345]는 1~5까지 숫자 중 아무 숫자 1개 탐색
- 문자 클래스 내 범위지정
위의 [12345]를 [1-5]로 대체 가능
^ 문자 클래스 내 부정
[^0-9]는 0~9 빼고 모든 문자

() 서브패턴
flav(o|ou)r 는 flavour, flavor 둘 다 탐색

수량자
* 0회 이상 매치
+ 1회 이상 매치
? 0회 또는 1회만 매치
{n,m} n회부터 m회까지 반복
{n} n회 반복
{n,} n회 이상 반복

앵커
위치고정
^ 행의 처음
$ 행의 끝

임의문자
. 줄바꿈 문자를 제외한 모든 문자 1개

수정자
g 전역 검색
i 대소문자 구분 안 함
m 탐색시 줄바꿈이 있어도 전체 검색
s .에서 포함하지 않던 줄바꿈도 포함해 탐색

\b 문자와 공백 사이
\c 제어문자
\d 숫자에 해당하는 유니코드에 대응.
\f 폼 피드
\n 줄바꿈 문자
\s 공백 문자
\t 탭 문자
\v 수직 탭
\w 단어 영문자+숫자+(밑줄) [0-9a-zA-Z]
\x 16진수 값
\0 8진수 값

\ ^ $ . | [ ] ( ) * + ? { }
이 문자들은 문자 자체의 의미 외에 연산자로 쓰이거나 다른 용도로 쓰이기 때문에 해당 문자 자체를 탐색하고 싶다면 문자 앞에 역슬래시\를 붙여 사용한다.
예: ?를 찾고싶다면 \?

참고링크
참고링크

profile
수학과 코딩

0개의 댓글