[Dart] 정규표현식 (Regular Expression)

AsherKim·2023년 5월 31일
0

플러터 TIL

목록 보기
14/18

정규식(Regular Expression)은 문자열의 패턴을 표현하기 위한 형식 언어이다. 정규식은 문자열에서 특정 패턴을 찾거나, 검색, 치환, 유효성 검사 등 다양한 문자열 처리 작업에 사용된다. 정규식은 특정 규칙을 따라 문자열을 매칭시키기 위한 패턴을 정의하며, 이를 통해 문자열에서 원하는 패턴을 찾거나 조작할 수 있다.

Dart에서는 정규식을 지원하기 위해 RegExp 클래스를 제공한다.

정규식을 사용하기 위해 Dart에서는 다음과 같은 기본적인 정규식 패턴을 사용할 수 있다.

특정 문자 찾기: '.' 은 임의의 문자를 의미하고, [] 안에 문자를 나열하면 해당 문자 중 하나를 의미한다. 예를 들어, 정규식 a.b는 "aab", "abb"와 일치하지만 "acb"와는 일치하지 않다.

문자 반복: '*' 은 앞의 문자 또는 그룹이 0번 이상 반복되는 것을 의미한다. +는 앞의 문자 또는 그룹이 1번 이상 반복되는 것을 의미하며, ?는 앞의 문자 또는 그룹이 0번 또는 1번 등장하는 것을 의미한다.

문자 범위: '-' 을 사용하여 문자 범위를 지정할 수 있다. 예를 들어, [a-z]는 모든 소문자 알파벳을 의미한다.

특수 문자: '\'를 사용하여 특수 문자를 이스케이프할 수 있다. 예를 들어, .은 실제 . 문자를 의미한다.

Dart에서 정규식을 사용하는 방법은 다음과 같다

  1. 정규식 패턴을 만든다. 이를 위해 RegExp 클래스를 사용한다. 예를 들어, RegExp regex = RegExp(r'ab+c');와 같이 패턴을 생성할 수 있다.

  2. RegExp 객체의 메서드를 사용하여 문자열과 일치하는지 확인할 수 있다. 예를 들어, regex.hasMatch('abbbc');는 문자열이 패턴과 일치하는지 여부를 반환한다.

import 'dart:core';

void main() {
  RegExp regex = RegExp(r'ab+c');
  String input = 'abbbc';

  if (regex.hasMatch(input)) {
    print('일치하는 문자열이 있습니다.');
  } else {
    print('일치하는 문자열이 없습니다.');
  }
}

위 예제에서는 정규식 패턴 ab+c를 사용하여 문자열 'abbbc'와 일치 여부를 확인한다. 일치하는 경우 "일치하는 문자열이 있습니다."를 출력하고, 그렇지 않은 경우 "일치하는 문자열이 없습니다."를 출력한다.

profile
추리를 좋아하는 개발자

0개의 댓글