많은 프로그래머들은 빠른 정규 표현식을 내놓는 기쁨을 알고 있습니다. 요즘에는 종종 웹 서비스의 도움을 받거나보다 전통적인 대화식 프롬프트를 사용하거나 개발중인 정규 표현식이있는 작은 스크립트를 작성하고 테스트 사례를 수집하는 경우가 많습니다 . 어쨌든 프로세스는 반복적이고 상당히 빠릅니다. 암호처럼 보이는 문자열을 해킹하여 원하는 것을 일치시키고 캡처하고 원하지 않는 것을 거부합니다.
간단한 경우 결과는 Java 정규 표현식과 같이 다음과 같습니다.
Pattern re = Pattern.compile(
"^\\s*(?:(?:([\\d]+)\\s*:\\s*)?(?:([\\d]+)\\s*:\\s*))?([\\d]+)(?:\\s*[.,]\\s*([0-9]+))?\\s*$"
);
많은 프로그래머들은 정규 표현식을 편집해야하거나 레거시 코드 기반에서 정규 표현식을 코딩해야하는 어려움을 알고 있습니다. 약간의 편집으로 나누면 정규 표현식보다 위의 정규 표현식을 이해하기가 여전히 쉬우 며 정규 표현식 베테랑은 자신이하는 일을 즉시보아야합니다 (누군가 운동을 원할 경우 게시물 끝의 답변) 스스로 알아내는 것).
그러나 정규 표현식이 실제로 쓰기 전용이 되려면 훨씬 복잡해질 필요가 없으며 부지런 한 문서 ( 모든 복잡한 정규 표현식에 대해 모든 사람 이 작성하는 문서)를 사용하더라도 정규 표현식을 수정하면 힘든 일. 정규 표현식을 신중하게 단위 테스트하지 않으면 매우 위험한 작업 일 수 있습니다 (그러나 모든 사람 은 긍정적이고 부정적인 모든 복잡한 정규 표현식에 대한 포괄적 인 단위 테스트를 가지고 있습니다 ...).
짧은 이야기로, 정규 표현식의 힘을 잃지 않고 쓰기 읽기 솔루션 / 대안이 있습니까? 위의 정규 표현식은 다른 접근법으로 어떻게 보일까요? 다국어 솔루션이 가장 좋을지라도 모든 언어는 괜찮지 만 정규 표현식이 다국어입니다.
그런 다음 이전 정규 표현식의 기능은 다음과 같습니다. 형식으로 숫자 문자열을 구문 분석하고 1:2:3.4
공백이 허용되고 3
필요한 위치 만 각 숫자를 캡처 합니다.