2012-02-29 3 views
0

실행 파일에 대한 올바른 사용자 입력을 확인하고 있습니다. 그러나 del/rm, dir/ls과 같은 것을 포함합니다. 입력은 XML을 통해 수집되고 XSD을 사용하여 유효성이 검사됩니다. 내 프로그램이 동일한 파일에 대한 액세스 권한이 있거나없는 서버에 제출하기 때문에 파일 존재 여부는 확인하지 않습니다. r n이 아닌 정규식이 아닌 정규식

유일한 요구 사항은 새로운 행 \r 또는 \n이 없으며 완전히 공백이 될 수 없다는 것입니다. 나는 그것이 \t 탭 중 하나도 허용되지 않을 것이라고 가정하는 것이 타당하다고 생각하지만, 나는 뉴 라인에 더 관심이있다.

감사

답변

1

을 읽고 변경할 수 있습니다 을 [^\r\n\t]*[^\r\n\t\s][^\r\n\t]*

중간 부분은 개행, 탭 또는 공백이 아닌 하나의 문자가 있어야 함을 의미합니다. 나머지는 줄 바꿈이나 탭이 아닌 문자 주위의 0 개 이상의 문자를 의미합니다 (단, 공백이 될 수 있음). 나는 모두가 \s에 포함될 수 있기 때문에 중간 그룹에서 \r\n\t을 제거 할 수있을 것이라고 생각하지만이 중 하나를 테스트하지 않았습니다.

탭을 원할 경우 \t의 세 번을 제거하십시오.

+0

예, 동일한 제한 사항이 있습니다. – SimplyKnownAsG

1

나는 당신이 원하는 것을 완전히 잘 모르겠지만, "아니오 줄 바꿈 그냥 공백하지"에 대한 정규 표현식이 0 개 이상의 공백 문자 다음에 일치

[ \t]*\S[^\r\n]* 

것 공백이 아닌 문자와 \ r 또는 \ n (공백과 탭 포함)이 아닌 임의의 수의 문자로 구성됩니다. \ S와 일치하지 않는 공백 문자가 없으므로 공백만으로 구성된 문자열과 일치 할 수 없습니다. 그렇다면, 당신은 아마 이런 식으로 뭔가를하려는 경우 http://www.regular-expressions.info/xml.html

을 : : 또한 탭을 금지하기 위해

, 당신이 당신이 제한 여기에 언급 한 뜻

[ ]*\S[^\r\n\t]*