공백 문자 유형을 가질 수있는 문자열 (특히 PHP 사용)과 일치 시키려합니다. 또는 문자열이 비어 있는지 또는 공백이 있는지를 알려줄 수있는 방법이 도움이 될 것입니다.빈 (또는 모든 공백) 문자열과 일치하는 정규 표현식
if (Trim ($str) === '') echo 'empty string';
공백 문자 유형을 가질 수있는 문자열 (특히 PHP 사용)과 일치 시키려합니다. 또는 문자열이 비어 있는지 또는 공백이 있는지를 알려줄 수있는 방법이 도움이 될 것입니다.빈 (또는 모든 공백) 문자열과 일치하는 정규 표현식
if (Trim ($str) === '') echo 'empty string';
당신은 사용, 그것을위한 정규 표현식이 필요하지 않습니다 표현식은 "0 이상"이기 때문에 0 이상의 공백으로 끝나야하며, 또한 null 문자열과 일치합니다.
if(preg_match('^[\s]*[\s]*$', $text)) {
echo 'Empty or full of whitespaces';
}
합니다^[\ S] *이 텍스트는 0 개 이상의 공백으로 시작해야 함을 의미하고 [\ S] * $ :
1. 그 정규식에 일치하는 괄호가 없습니다. 2. 구획 문자도 없습니다. 3. 공백 또는 비어 있지 않은 문자열을 검사하는지 여부를 설명 할 수 있습니다. – nickf
나는이 대답에 대한 모든 상향 신호를 이해하지 못한다. 그것은 너무 지나치게 길다. 다음의 정규 표현식은 똑같습니다 :'^ \ s * $'. 문자 클래스에'\ s'를 넣을 필요가 없으며 두 번 추가 할 필요가 없습니다. -1, 나부터. 미안. –
내가 처음 글을 쓸 때, 그것은 정확히 당신이 말한 것이 었습니다. 나는 명확성과 nickf의 설명 요청을 위해 그것을 바 꾸었습니다. –
식 \A\s*+\Z
'\ z'는 어떨까요? '\ Z' 문서가 문자열의 끝 또는 끝에있는 줄 바꿈 앞에 일치합니다. '\ z'는 문자열의 끝에서만 일치합니다. –
당신은 정말 정규식
if($str == '') { /* empty string */ }
elseif(trim($str) == '') { /* string of whitespace */ }
else { /* string of non-whitespace */ }
트리밍 된 문자열의 길이를 확인하거나 트리밍 된 문자열을 빈 문자열과 비교하는 것이 가장 빠르며 가장 쉽게 읽을 수 있지만 사용하지 못할 수도 있습니다 (예 : 유효성 검사를 위해 프레임 워크를 사용할 때 정규 표현식 만 사용합니다). 아무도 다른 실제로 아직 작업 정규식을 게시되지 않았기 때문에
...
if (preg_match('/\S/', $text)) {
// string has non-whitespace
}
또는
if (preg_match('/^\s*$/', $text)) {
// string is empty or has only whitespace
}
다음은 문자열에 공백이 포함 된 경우, 내다 및 lookbehind 주장을 통해 정규식 검사를 다음 시작 또는 끝에 또는 문자열이 비어 있거나 공백 만 포함하는 경우 :
무효 (내부 ") :
""
" "
" test"
"test "
유효 (내부") :
"t"
"test"
"test1 test2"
+1 : 이것은 유지 보수/정규식을 컴파일보다 더 빨리, 그리고 더 많은 읽을 수 있습니다. –
맞지만 모든 경우에 적합하지 않을 수 있습니다. 예. 패턴을 동적으로 생성하고 한 번만 사용 preg_match ($ pattern, $ str) –
@Dominic : "자르기"는 "자르기"만큼 잘 작동합니다. 코딩 스타일의 문제 일뿐입니다. –