2012-05-02 2 views
-1

나는 사용자가 입력하도록 허용 문자를 지정하는 다음과 같은 정규 표현식이 있습니다이 정규식을 수정하여 공백을 허용하지 않으려면 어떻게해야합니까?

@"^[A-Za-z0-9/!\$%\^&\*\(\)\-_\+\[\]\{\}\;\:\'\£\@\#\.\?]*$ 

을 나는 '\s'를 알고를 공백의 문자 클래스,하지만 어떻게 내가 그것 때문에 정규 표현식이를 추가하려면 그것을 제외합니까? Stack Overflow에서이 문제를 검색했습니다. 질문은 공백을 제외하고 기존 정규식에서이를 사용하는 방법이 아닌 솔루션을 제공합니다. 다른 문자가있는 것처럼 추가하면 '공백 허용'을 의미할까요?

편집 : 이유가 확실하지 않은 이유는 무엇입니까? 모두에게 감사의 답변을

+3

현재 공백을 사용할 수 있습니까? – SimpleVar

+0

필자는 그것을 확실히 테스트했으며, 생각한대로 이미 공백을 제외했습니다 ... – SimpleVar

+1

'excludes '로 무엇을 의미합니까? 현재 정규 표현식 (BTW는 많은 이스케이프 문자를 필요로하지 않습니다. 문자 클래스에서'['및']'만 이스케이프해야 함)는 공백을 허용하지 않으므로 이미 제외되었습니다. – Jamiec

답변

3

우선, 모든 탈출구가 필요하지 않습니다. 둘째로, 정규 표현식은 이미 공백을 허용하지 않습니다.

@"^[A-Za-z0-9\[\]/!$%^&*()\-_+{};:'£@#.?]*$" 

[]는 허용 할 문자 집합을 정의합니다 (* 뒤에 문자 집합의 문자는 0 번 이상 올 수 있음).

^는 처음과 일치하고 $는 끝과 일치하므로/s가 어디에도 없으므로 공백이 허용되지 않습니다.

+0

'$'는'$'가 아니라'$'로 끝납니다. – Jamiec

+0

롤 감사합니다. 결정된. – SimpleVar

+0

(귀하의 설명에 여전히 포함되어 있습니다) – Jamiec

3

대괄호 안에 ^은 부정을 나타내므로 ^\s을 추가하면 "공백이 아님"을 의미합니다.

+0

사실은 아닙니다. 문자 클래스의 * 시작 *에있는'^ '는 부정된 클래스입니다. 어딘가에있는 (OP와 같은) 중간에있는'^'는 그 캐릭터를 캐릭터 클래스에 포함 시켰습니다. – Jamiec

+0

물론 사실입니다. 오늘 너무 어서 피곤해 ... – glenatron

0

정규 표현식에서 "\ s"를 쓰지 않으면. 이것은 정규식이 공백을 허용하지 않는다는 것을 의미합니다. 예를 들어

: 1) 내가 어떤 사용자가 텍스트 상자에 빈 공간을 입력 할 수 있도록하고 싶지 않은 경우, 정규 표현식으로 기록됩니다

정규식 알파벳 = 새 정규 표현식 (@ "^ [az] * $ "); 사용자가 다음 정규 표현식으로 작성되는 텍스트 상자에 빈 공간을 입력 할 수있는 경우

2) : (

정규식 알파벳 = 새 정규식 @ "^ [AZ \ S] * $") ;

3) 정규 표현식에서 "^"는 시작을 의미하고 "$"는 끝을 의미합니다.

NOTE^\들 \ "S"

정규식 regfname = 새로운 정규식 부정 수단 (@ "^ [^ \ S [A-ZA-Z * $");

이 코드는 공백을 허용하지 않으며 빈 텍스트 상자를 허용하지 않습니다!

정규 표현식에서 공백 개념을 이해하는 데 도움이되기를 바랍니다.

+0

OP는'\ s'의 목적을 이미 이해하고있다 : 그들이 필요로하는 것은 특정 정규 표현식에서의 사용에 대한 조언이었다. 귀하의 질문은 그 문제를 해결하지 못하므로 매우 도움이되지 않습니다. – APC

관련 문제