저는 상점에서 라우터를 사용하면서 TCL로 작업하기 시작했습니다. 우리에게는 내가 접근 할 수있는 스크립트를 작성하는 기술자가있어서 그의 작품을 통해 배우려고합니다.정규 표현식을 사용하여 기존 TCL 스크립트의 일부를 이해하려고 시도했습니다.
내가 이해하려고 노력한 스크립트의 시작 부분에서 다음 섹션을 보았고 거의 진행되지 않았습니다. 나는 당신이 어떤 설명이라도 전혀 도울 수 있기를 바랬다.
이 섹션에서는 프롬프트를 설정하고 나중에 스크립트에서 사용되는 프롬프트 설정을 만듭니다.
set cmd "show clock"
regsub -all $spec $cmd "_" cmde
그래서 내가 정말 무슨 일이 일어나고하지만 내 '웹 푸'이에 날 완전히 실패 무엇인지 알고 싶습니다 다음과 같이
set prompt "(%|#|\\$) $" ;# default prompt
catch {set prompt $env(EXPECT_PROMPT)}
set spec "(,|%|\\)|\\(|;|:|\\.|\\*|\[|\]| |/|{|}|\\||\\$|\"|\'|\\\\|-)"
은 나중에, 변수 사양의 값이 사용됩니다.
감사합니다. Marc
먼저 답장을 보내 주셔서 감사합니다. 둘째, 이렇게 읽기 쉬운 방법으로 수행 할 수 있기 때문에 모든 원래 작성자의 코드는 무엇을 의미합니까 ?? 나 같은 사람에게는 기괴 해 보입니다. – Marc
정규 표현식 파이프 기호'| '는 "이 표현식 또는 해당 표현식과 일치"(http://tcl.tk/man/tcl8.5/TclCmd/re_syntax.htm 참조)를 의미하므로 작성자가 쉼표와 짝을 이루었습니다 또는 % 또는 닫는 괄호 또는 ... ". 각 대안은 단일 문자이기 때문에 문자 클래스가 더 적합한 컨테이너입니다. 또한 저자는 분명히 Tcl의 괄호'{}'메커니즘을 인용하지 않았기 때문에 꽤 많은 백 시라시스가 있습니다. –
다시 한 번 감사드립니다. – Marc