2012-11-05 1 views
4

나는 넓고 멀리 검색 및 정규 표현식을 설명하는 어디서나 찾을 아직 한 : 나는 여러 정규식 테스터를 사용했습니다 그 문제에 ([!-~]|[ ])*[!-~]([!-~]|[ ])*XSD 파일에서 [! - ~] * 패턴은 실제로 무엇을 확인합니까?

를 들어, [ !-~]* 또는 그들은 모든 입력을 받아 들일 것으로 보인다. XSD가 고유 한 형식의 RegEx를 허용하고 모든 RegEx 문을 허용하지 않는다는 것을 읽었습니다. 따라서 표준 RegEx식이 아닐 수도 있습니다 (필자는 그렇게 생각하지 않습니다). 유일한 힌트는 형식 이름이 첫 번째 식의 경우 an이고 두 번째 식의 경우 anM입니다. 나는 이것이 어느 정도까지는 알파 숫자와 알파 숫자 다중에 대한 약어라고 믿는다. 그러나 이것이 정말로 받아 들여지고 가정을하지는 않는지 100 % 확신하고 싶다.

답변

5

[ !-~]은 범위 또는 ASCII/유니 코드 순서로 정의되는 !에서 ~까지의 모든 문자와 일치합니다. 덧붙여 말하자면, !이 첫 번째이고 마지막으로 인쇄 할 수있는 ASCII 문자 ~이므로 인쇄 가능한 ASCII 문자 또는 공백과 일치합니다.

([!-~]|[ ])*[!-~]([!-~]|[ ])* 비슷하지만 비 공백 문자가 하나 필요합니다. [!-~]|[ ][ !-~]과 같습니다.

+0

'([! - ~] | [])'또한 포함 할 공간이 있기 때문에'[- ~]'로 쓸 수 있습니다. – Anirudha

+0

@ Fake.It.Til.U.Make.It yes good 포인트! 하지만이 정규식을 더 이상 (제 생각에는) obfuscates 및 질문 정규식 및 해당 최적화하는 방법에 대한 설명에 대한;) –

관련 문제