답변:
방법에 대한 시각 정규 표현식 ?
이 kodos 독립형 응용 프로그램을 선호하는 경우. 최근에 http://debuggex.com 또는 http://www.regexper.com/ 과 같은 온라인 정규식 시각화 도구를 사용하고 있습니다 .
OP가 요구하는 정확한 것은 아니지만 관련성이 있다고 생각하므로 Regex 편집기에 대한 권장 사항을 게시 할 것 입니까? # 549107-우분투에게 물어보십시오 :
시각적 정규식 GUI 도구에 대한 나의 시도는 다음과 같습니다 visRegexTester.py
.
"regex"필드를 입력하고 변경하면 "실시간 미리보기"( "자동 재실행")가 있습니다. 그렇지 않으면 그것은 단지 하나의 파일입니다. 시작 부분에 README 주석이 있습니다-여기에 발췌 문장이 있습니다.
visRegexTester는 정규 표현식 작성을 지원하는 작은 Python / Tkinter GUI 애플리케이션입니다. Python 2.7 및 3.2로 테스트되었습니다. 사실, 다른 명령 줄 프로그램의 인터페이스는 단지이다는 사실을 활용하는 터미널에서 정규식 프로세서 (예를 들어, 사용 유닉스 / GNU / 리눅스 프로그램의 많은
grep
,sed
,perl
), 세 가지의 유사한 명령 줄 구문이 부속:(프로그램 --ARGS) ( 'REGEX') (FILENAME)
... 자세한 내용은 나머지 부분을 참조하십시오. 스크린 샷 :
예, text2re.com 은 귀하가 찾고있는 것과 가까이 있어야합니다. 주어진 소스 텍스트에서 주어진 텍스트와 일치하는 정규식을 생성하도록 선택할 수 있습니다. 이 도구는 다양한 언어를위한 코드도 생성합니다.
정규식 작성기 UI (페이지의 2 단계)는 배우기가 약간 어렵습니다. 옵션 위로 마우스를 가져 가면 일치하는 개체가 설명됩니다.
"시각적으로 코드를 작성하십시오" 라는 의미가 무엇인지 잘 모르겠습니다 (GUI 도구를 의미합니까?). 당신이 나와 같다면 복잡한 정규 표현식으로 구조화 된 방식으로 배치하지 않으면 복잡한 표현을 사용할 수 없으므로 논리를 더 잘 시각적으로 표현할 수 있습니다 .
실제로 sed
는 스크립트 언어 일 뿐이며 다른 언어와 같이 배치 될 수 있습니다. 한 줄에 하나의 명령으로. 다음은 내가 의미하는 전형적인 예입니다 . 구조화 된 레이아웃을 보여주는 sed 정규식 .
매우 편리한 기능은 디버깅 명령 입니다. sed
이 명령 은 다음과 같이 개행 문자가 포함 된 패턴 공간을 보여주는 간단한 행 덤프입니다 . l
\n
문제 sed
는 정규 표현식 만이 아닙니다. 루핑 및 조건 테스트를위한 펑키 한 암호 명령 세트가 있습니다. 이것에 익숙해지기까지 시간이 걸린다 ... 내가 다루는 것을 돕기 위해 내가 찾은 최고의 도구 sed
는 아주 간단하다. 나는 매뉴얼을 자세히 읽는다 . 간단한 일들; 경험을 쌓기 위해 더 큰 것들을 쌓으세요
Perl 정규식에는 복잡한 패턴을 배치하는 데 도움이되는 유용한 기능이 있습니다. 예. 능력은 도전으로 (.. 표현식에 공백을 무시하고 대한 expereince의 요인, 내가 쓴 sed
내 구문 분석 파서 sed
... 이러한 공백을 허용하는 코드를 PS를 지금 필요하지 않습니다. 때문에 경험 :) 실제로 한 줄에 하나씩 명령을 배치하는 것은 거의 perl 기능만큼 좋습니다.
가장 유용한 도구는 다음과 같습니다. 경험 . 예. 이 사이트에서 정규식 질문을 다루는 것이 그 경험을 얻는 좋은 방법입니다 ... GUI 도구는 경험 을 방해하기 때문에 실제로 많은 도움이되지 않는다고 생각 합니다 ...
요약하면, 최고의 도우미 도구는 경험 과 구조화 된 레이아웃 이며 설명서를 자세히 읽으십시오.
나는 "expereince"라는 단어를 많이 사용했다. 그것은 정규 표현식 (그리고 sed
루핑 로직 등 의 경우)을 준비하는 행위 가 핵심 요소라는 것을 의미한다. "Regex-Builder"타입 도구; 정규식을 작성하지 마십시오. 그들은 그것을 테스트하고, 그것은 정규식이 아니기 때문에 sed의 프로그램 논리 를 확실히 처리하지 않을 것 입니다 .. (그리고 당신은 구체적으로 지적했습니다 sed
...) . 대괄호 일치가 좋은 편집기는 꽤 편리합니다 (이맥스를 사용합니다).
emacs re-builder
보았는데 전혀 도움이되지 않았다 ... 지난 1 emacs
일이 아니라 ... 이맥스가 물건을 평가하는 방식 때문에 여분의 백 슬래시가 필요 하다는 것을 보여주었습니다 ... 를 통해 정규 표현식을 평가하여 동일한 테스트를 수행합니다 C-x C-e
. .. 표현식을 쓰지 않습니다. 당신은 여전히 그것을 쓸 필요가 있습니다 ... 그리고 emacs
설명적인 단어를 사용하여 정규 표현식을 작성하는 시스템이 있습니다. ( 자세한 / 영어 같은 시스템은 COBOL과 함께 죽었다고 생각했습니다 . 아직) .. 그리고 conles, 당신은 여전히 그것을 써야합니다.