2012-02-08 5 views
0

나의 현재 정규식은 숫자 만 허용하지 않습니다 /[^ 0-9]/입니다 (대시)없이 숫자 - 문자, 공간을 허용합니다. 그러나 문제는()와 같은 다른 문자를 허용하고 중간에 숫자가있는 문자를 허용한다는 것입니다. 친절하게 도와주세요.정규식 - 허용

감사합니다.

답변

1

잘못된 방향에서 문제가 발생합니다.

무엇에 대해 :

[a-zA-Z \-]+ 
+0

아직 시도했지만 숫자를 받아들입니다. – StackX

1
[-a-zA-Z ]+ 

대시 또는 문자 'A'어느 경우 또는 공간에서 'Z'까지.

또는 더 나은 국제 지원을 받으려면 사용할 수있는 명명 된 문자 클래스가 있는지 고려하십시오. POSIX 시스템에서는 다음과 같이 쓸 수 있습니다.

grep -E '^[-[:alpha:] ]+$' 

예를 들어, 악센트 부호가있는 문자가 선택됩니다. 아마도 유사 표기법 (아마도 표기법이 아님)을 사용할 수 있습니다.

+0

해당 정규식은 숫자와 일치 할 수 없습니다. '^ [- a-zA-Z] + $'양쪽 끝에 앵커를 두어 문자열 전체가 글자, 대시 및 공백과 일치하도록 할 수 있습니다. –

2

규칙/요구 사항을 확인하십시오. 따라서 알파벳 만 허용하려는 경우

@"^[a-zA-Z]+$" 

힌트 - 적용 이론을 적용하십시오. 모든 문자가 범용 세트에 속하면. 모두 허용됩니다. 그 다음에 규칙을 적용합니다. 숫자를 허용하지 않으면 숫자를 제외한 모든 것이 허용된다는 것을 의미합니다. 당신의 문제에 대한

0

, 당신은 당신이 원하는 번호와 괄호()처럼 허용하지 않습니다이 정규식

[^()\d] 

를 사용할 수 있습니다. 사이의 숫자도 표시되지 않습니다