Dart

[Dart] 정규표현식 - 문자열 검색

mjjayce 2025. 3. 18. 17:43

정규표현식

문자열에서 패턴을 검색하는 기능을 수행함

특정 문자가 포함되어 있는지를 찾고, 대체, 문자열 반환, bool 값 반환 등을 처리할 수 있다.

 

 

먼저 사용할 패턴(조건)을 선언한다.

RegExp pattern = RegExp(r'패턴');

 

RegExp는 클래스의 일종이다.

위 코드는 RegExp 객체를 생성한다. 

 

 

패턴의 정의

기호 의미 동일한 코드
\d 숫자 [0-9]
\w 문자(숫자, 특수문자'_' 를 포함)(한글 미포함) [a-zA-Z0-9_]
\s 공백 문자(공백, 탭, 줄 바꿈)  
^ 문자열의 시작  
$ 문자열의 끝  

 

예시

영어 소문자, 숫자만 이용해서 비밀번호를 입력받고 싶은 경우

RegExp pattern = RegExp(r'^[a-z0-9]+$');

 

닉네임에 한글, 공백만 허용하는 경우

RegExp pattern = RegExp(r'^[가-힣\s]+$');

 

패턴을 선언한 후 메서드를 사용해 문자열을 검사, 가공하면 된다.

 

 

주요 메서드는 다음과 같다. 

 

1. hasMatch 

주어진 문자열에 패턴과 일치하는 부분이 하나라도 있는지 확인하여 bool 타입을 반환

bool hasMatch = pattern.hasMatch('문자열');

 

 

2. firstMatch

주어진 문자열에서 패턴과 첫 번째로 일치하는 부분을 찾아 Match 객체로 반환

일치하는 부분이 없는 경우 null 반환

Match? firstMatch = pattern.firstMatch('문자열');

 

 

3. allMatches

주어진 문자열에서 패턴과 일치하는 모든 부분을 찾아 Match 객체들의 Iterable을 반환

일치하는 부분이 없는 경우 빈 Iterable 반환

Iterable<Match> matches = pattern.allMatches('문자열');

Iterable은 Match의 열거형 타입이다. 

toList를 사용하면 List<Match>로 사용하는 것도 가능하다.

 

 

 

다트 콘솔 프로그램 실제 사용예시

-영문 소문자, 영문 대문자, 한글, 공백만 입력 가능