2012-01-27 2 views
6

사용자 입력이 공백이 아닌 X 문자 수보다 큰지 확인하는 정규식을 작성하려고합니다. 기본적으로 입력이 X 문자보다 큰지 확인하면서 시작과 끝 공백을 필터링하려고합니다. 문자는 공백이 아닌 아무 것도 될 수 있습니다 (공백, 탭, 리턴, 개행). 이의 I이 사용하고 정규 표현식하지만 작동하지 않습니다 : 나는 C# 4.0 (Asp.net 정규 표현식 검사기)를 사용하고최소 길이 정규식

\s.{10}.*\s 

은 BTW 그 중요합니다.

+1

정규식이어야합니까? 정규식없이 쉽게 할 수 있습니다. –

답변

7

전혀 정규식을 사용하지 쉬울 수 있습니다 : 공백이 중간에 포함되지해야하는 경우

input.Where(c => !char.IsWhiteSpace(c)).Count() > 10 

가, 다음이 작동합니다

(\s*(\S)\s*){10,} 

당신은 상관하지 않는 경우 공백이 아닌 문자 사이의 공백에 대해서는 다른 답변에서 해당 시나리오가 적용됩니다.

+0

죄송합니다. 방금 업데이트되었습니다. 정규식 검사기를 사용하고 있습니다. – Mark

+0

@ 마크 - 일부 유효한 문자의 중간에 공백이 있으면 유효성 검사에 실패해야합니다. 'f a i ll' –

+0

아니, 공백이 아닌 첫 번째 공백과 마지막 공백이 아닌 사이에 X 문자가있는 한 괜찮습니다. – Mark

3

이 정규 표현식은 첫 번째와 마지막 공백이 아닌 문자 사이에 8 개 이상의 문자를 찾습니다 선행 및 후행 공백 무시 : 당신은 내 경우처럼 (전화 번호를 확인하려고하면

\s*\S.{8,}\S\s* 
1

을 그 8 자리 숫자가 포함되어 있음) 필요한 숫자 아래의 숫자를 참조해야합니다.

(\s*(\S)\s*){7,} 
관련 문제