재사용 및 가독성을 이유로 정규 표현식 정의를 분리해야하는 복잡한 텍스트를 구문 분석하는 동안이 일반 구조의 스칼라 코드 (pn
- 정규식 패턴 , vn
변수는) 새로운 패턴 때문에 자리 표시 자들 (dummyn
)에서 유용 일치 (vn
)의 분리의 삽입해야하기파서 결합 자의 세련되지 않은 구조 반복
val cp1 = p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ^^
case { dummy1 ~ v2 ~ dummy3 ~ v4 ~ dummy5 ~ v6 => ACaseClass(v2, v4, v6) }
명백한 문제는 가독성과 코드의 유지 보수성이다.
그래서 의도를 표현하는 더 좋은 방법이 있습니까? dummyn
마다 대신 _
을 사용할 수 있습니까?
SNOBOL 언어에서는 일치 결과를 변수에 할당하는 (pat . var)
또는 (pat $ var)
을 쓸 수 있습니다. 마찬가지로, 최신 정규식 구문에서 우리는 캡쳐 그룹 (?P<name>pat)
을 명명했습니다. 일치 캡처 변수를 패턴에 가깝게 유지하려는 의도가 분명합니다.
val cp1 = p1 ~ (p2 $$ v2) ~ p3 ~ (p4 $$ v4) ~ p5 ~ (p6 $$ v6) $=>
ACaseClass(v2, v4, v6)
가 분명히 나는 새로운 사업자
$$
이 간단한 구문을 사용
$=>
일종의 가정입니다 :
그럼, 내가 쓰고 싶습니다의 일반 라인을 따라 뭔가입니다.
아마도 매크로가 도움이 될 수는 있지만, 현재 내 능력을 넘어서는 것입니다. 모든 입력 환영!