2009-09-06 3 views

답변

43

는 사용 \s

if (preg_match("/\\s/", $myString)) { 
    // there are spaces 
} 

공백에만 관심이 있다면 정규식이 필요하지 않습니다.

if (strpos($myString, " ") !== false) 
+0

당신은 잘못된 방향으로 주위의 strpos 매개 변수를 가지고있다. 다음과 같아야합니다 : if (strpos ($ myString, "")! == false) – ncatnow

+0

@ncatnow, 헤드 업에 감사드립니다. 거의 1 년 동안 저기 앉아있었습니다. : p – nickf

+0

\ s \ b \\ S 등을 설명하는 문서의 링크가 어디 있는지 아십니까? – Pacerier

3

또한이 문제를 해결하는 this StackOverflow question을 참조하십시오.

, 당신은 탭과 공백의 다른 유형을 탐지하려는 경우에 따라, 당신은 \ B \ w와 같은 것들에 대한 펄 정규 표현식 구문을보고 할 수 있습니다 [: SPACE :]

+0

'\ b'와 같이 작은 따옴표로 묶으면'/ \ s /'를 사용할 수 있습니다. 예를 들어'preg_match ("/ \\ b /", "abc")'== true – nickf

+0

좋은 점은, 나는 단지 "단어 경계"를 생각하고 있었고 그것이 기억에 일치하지 않을 것이라고 생각했다. 끝. – JYelton

0

당신은 사용할 수 있습니다

preg_match('/[\s]+/',.....) 
0
[\\S] 

상단 대소 문자 'S'는 확실히 작동합니다.

0

이 목적으로 ctype_graph를 사용하는 것이 어떻습니까? 이렇게하면 공간의 범위가 확장되어 화면 (\ t, \ n 등)에 아무것도 표시되지 않는 "공백 문자"를 의미하게됩니다. 그러나 이것은 기본이며 preg_match보다 빠릅니다. 빠른

$x = "string\twith\tspaces" ; 
if(ctype_graph($x)) 
    echo "\n string has no white spaces" ; 
else 
    echo "\n string has spaces" ; 
관련 문제