솔직히, 당신의 기능은 "한가지 일을"할 수 있지만, 당신이 언급 한대로
정규식을 여러 기능으로 나눌 수 있습니다.
정규 표현식 코드가 많은 일을한다는 것을 의미합니다. 그리고 그것은 더 작고 개별적으로 테스트 가능한 단위로 나눌 수 있다고 생각합니다. 그러나 이것이 좋은 생각이라면 대답하기 쉽지 않습니다 (특히 실제 코드를 보지 않고). 정답은 "예"또는 "아니오"일 수 있지만 "아직 아니라 다음 번에는 정규 표현식에서 무언가를 변경해야합니다"일 수 있습니다.
언어를 효과적으로 전환하기 때문에 가독성이 떨어질 것 같습니다.
그리고 이것이 핵심 요점 입니다. 정규 언어로 작성된 코드가 있습니다 . 이 언어는 그 자체로 좋은 추상화 수단을 제공하지 않습니다 (그리고 나는 "명명 된 캡처 그룹"을 함수의 대체물로 간주하지 않습니다). 따라서 "정규 ex 언어로"리팩토링은 실제로 가능하지 않으며 호스트 언어로 작은 정규 표현식을 섞어 짜는 것은 실제로 가독성을 향상시키지 않을 수 있습니다 (적어도 느낌 이 있지만 의심이 있습니다. 그렇지 않으면 질문을 게시하지 않았을 것입니다) . 여기 내 조언이 있습니다
다른 고급 개발자 (예 : /codereview// )에게 코드를 표시하여 다른 사람들이 가독성에 대해 생각하도록합니다. 다른 사람들이 당신처럼 읽을 수있는 100 줄 정규 표현식을 찾지 못할 수도 있다는 생각에 개방적입니다. 때때로 "작은 조각으로 쉽게 깨지지 않는다"는 개념은 두 번째 눈으로 극복 할 수 있습니다.
실제 진화 가능성을 관찰하십시오-새로운 요구 사항이 도착하고이를 구현하고 테스트해야 할 때 반짝이는 정규 표현식이 여전히 좋아 보입니까? 정규 표현식이 작동하는 한, 나는 그것을 만지지 않을 것이지만, 무언가를 바꿔야 할 때마다,이 큰 블록에 모든 것을 넣는 것이 정말로 좋은 생각이라면 다시 생각할 것입니다. 작은 조각은 더 나은 옵션이 아닙니다.
유지 보수성을 관찰하십시오-현재 형식으로 정규 표현식을 효과적으로 디버깅 할 수 있습니까? 특히 무언가를 변경 한 후, 테스트 결과에 무언가 잘못되었다는 것이 밝혀지면 근본 원인을 찾는 데 도움이되는 정규 exp 디버거가 있습니까? 디버깅이 어려워지면 디자인을 재고해야 할 수도 있습니다.