정규 표현식은 항상 유효한 문법으로 만들어 주세요
정규 표현식은 항상 유효한 문법으로 만들어 주세요
정규 표현식을 만들 때 문법이 틀리면, 코드를 실행하는 순간에서야 FormatException이 터져요. 그러니 정규 표현식 인스턴스를 만들 때는 유효한 문법을 쓰는 걸 지켜 주세요.
출처: valid_regexps
본문
정규 표현식을 만들 때는 유효한 정규 표현식 문법을 사용해야 해요. 잘못된 문법으로 만든 정규 표현식은 실행 시점에 FormatException을 던지기 때문에, 그런 상황 자체를 피해야 해요.
좋지 않은 코드:
print(RegExp(r'(').hasMatch('foo()'));
괄호 (를 여는 것만 있고 닫는 게 없으니 이건 유효하지 않은 문법이에요.
좋은 코드:
print(RegExp(r'\(').hasMatch('foo()'));
\(처럼 이스케이프해서 실제 괄호 문자 하나를 매칭하도록 만들어 주면 유효한 정규 표현식이 돼요.
이 규칙 켜는 법
valid_regexps 규칙을 켜려면 analysis_options.yaml 파일의 linter > rules 아래에 규칙을 추가하면 돼요.
linter:
rules:
- valid_regexps
YAML 맵 문법을 쓴다면 이렇게 해 주면 돼요.
linter:
rules:
valid_regexps: true