VerbalExpressions는 유창하고 가독성 높은 API를 통해 복잡한 정규 표현식을 쉽게 만들 수 있도록 설계된 Dart 패키지입니다. 개발자들은 직관적인 메서드 체인을 사용하여 정규 표현식 패턴을 단계적으로 구축할 수 있어 오류 발생 가능성을 줄이고 코드 유지보수성을 향상시킵니다. 구조화된 텍스트 분석이나 입력 형식 검증에 적합하며, 원시 정규 표현식 문법의 복잡성을 추상화하면서도 완전한 기능을 유지합니다. 이 패키지는 모든 주요 플랫폼을 지원하므로 크로스플랫폼 애플리케이션에 매우 유용합니다.
사용 사례
텍스트 패턴 검증
입력 정제
문자열에서 데이터 추출
구조화된 로그 파싱
재사용 가능한 정규 표현식 빌더 만들기
주요 기능
유연하고 체인 가능한 API
읽기 쉬우며 유지보수 가능한 정규 표현식 생성
모든 표준 정규 표현식 작업을 지원합니다
크로스 플랫폼 호환성
Flutter 앱과의 간편한 통합
적합한 대상
폼 검증기를 개발하는 개발자
코드 가독성을 우선시하는 팀
동적 정규식 생성이 필요한 프로젝트
사용자 입력 또는 로그 데이터를 처리하는 애플리케이션
고려 사항
원시 정규 표현식과 비교하여 약간의 오버헤드가 추가될 수 있습니다
매우 간단한 패턴에는 적합하지 않음
기본 정규 표현식 개념을 이해해야 합니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
verbal_expressions
A library for Dart developers that helps to construct difficult regular expressions.
Dart package info is here: https://pub.dartlang.org/packages/verbal_expressions
Quick start
var regex = VerbalExpression()
..startOfLine()
..then("http").maybe("s")
..then("://")
..maybe("www.").anythingBut(" ")
..endOfLine();
// Create an example URLString url = "https://www.google.com";
// Use VerbalExpression's hasMatch() method to test if the entire string matches the regex
regex.hasMatch(url); //True
regex.toString(); // Outputs the regex used: ^http(s)?\\:\\/\\/(www\\.)?([^\\ ]*)\$
var regex = VerbalExpression()..startOfLine()..then("abc")..or("def");
var testString = "defzzz";
//Use VerbalExpression's hasMatch() method to test if parts if the string match the regex
regex.hasMatch(testString); // true
Feel free to use any predefined char groups:
var regex = VerbalExpression()
..wordChar()..nonWordChar()
..space()..nonSpace()
..digit()..nonDigit();
Define captures:
var expression = VerbalExpression()
..find("a")
..beginCapture()..find("b")..anything()..endCapture()
..then("cd");
RegExp regex = expression.toRegExp();
var match = regex.firstMatch(text);
print(match.group(0)); // returns "abcd"print(match.group(1)); // returns "b"