폐쇄형 네트워크(즉, 인터넷에 연결되지 않음)를 사용하고 있습니다.
사용자에게 grep -P
.
일반적으로 나는 어떤 형태로든 입력 유효성 검사를 선호합니다.
(유효한) 정규식인지 확인하기 위해 문자열 변수를 테스트하는 방법이 있습니까?
(인터넷에서 내 시스템으로 내용을 복사하는 것이 가능하지만 시간이 오래 걸리고 PITA이므로 로컬에서 수행할 수 있는 방법을 찾고 있습니다.)
답변1
아니요. 하지만 일부 도구를 사용하면 정규식이 컴파일되는지 테스트하는 것이 어렵지 않습니다.
예를 들어, grep을 사용하면: echo | grep -P '['
- 종료 코드는 오류가 발생했음을 나타내는 입니다(이 예에서 grep은 $?
"2
grep: 문자 클래스에 대한 종결자가 누락되었습니다.]"를 stderr로 - 종료 코드만 필요한 경우 stderr를 /dev/null로 리디렉션할 수 있습니다.
종료 코드 1은 정규식이 잘 컴파일되었지만 입력과 일치하지 않음을 의미합니다.
이러한 종료 코드는 GNU grep에만 적용됩니다. 다른 도구에는 이러한 기능이 있더라도 종료 코드가 다를 수 있으며 특정 오류 유형을 표시하는 방법도 다를 수 있습니다.
이는 정규식이 원하는 것과 정확히 일치하는지(원하지 않는 것과 일치하는지) 알려주는 것과는 거리가 멀다는 점에 유의하세요.
즉, 시도해 보고 종료 코드를 테스트해 보세요. 그리고 당신의 도구를 알아라.