2011-12-27 2 views
2

일치하지 않습니다정규식

[^\s]+ 

...라고이 문자열이 :

"사용자의 내선"

이 정확히 일치하지?

+0

일부 실제 코드 *를 표시하십시오. –

+0

'[^ \\ s]'는 공백 문자가 뒤 따르는 행의 시작과 1 회 이상 일치합니다. 유일한 문제는 행의 시작이 한 줄의 문자열에 대해 두 번 이상 사용하십시오. []] 외부로 '^'을 이동하십시오. –

+2

@HunterMcMillen : 아니요, '^'는 문자 클래스 내에서 '부정'을 의미합니다 –

답변

7

정규식은 공백을 포함하지 않는 문자열 만 일치시킵니다. 일치하는 메서드는 전체 문자열에 정규식을 적용하는 것처럼 보이므로 실패합니다.

[abc]은 문자 클래스로 "a, b 또는 c"을 의미합니다.
[^abc]은 "a, b 또는 c을 제외한 모든 문자"를 의미하는 해당 클래스의 반대입니다.
\s은 "모든 공백 문자"를 의미합니다.
[^\s] (이는 \S이라고도 쓸 수 있음)은 "공백이 아닌 문자"를 의미합니다.
+ 수단 "하나 앞의 토큰입니다.

+0

#Tim Pietzcker 감사합니다. +1을 수락합니다. – user336635

+0

백 슬래시가 이스케이프 처리되고 있으므로 공백과 일치한다는 점만 제외하면됩니다. – jmoreno

+0

@jmoreno : 아니요, 이중 백 슬래시는 문자열 이스케이프에만 사용됩니다. –

2

귀하의 정규식의 더 "user's extension"가 일치하는 하위 문자열을 포함합니다. 하나 이상의 공백이 아닌 문자로 문자열을 일치합니다,하지만 때문에 공백 문자의 일치 자체가 아니다.