테스트 사이트 - 개발 중인 베타 버전입니다

답답합니다. 해결좀..해주세요..정규표현식에 관해.. 채택완료

포도야놀쟈 10년 전 조회 2,752

소스가 이렇구요.
if (ereg("([^[:space]]+)", $subject)) {
echo ("입력하신 제목은 $subject 입니다");
} else {
echo ("공백이거나 입력값이없습니다");
}

근데요. 헷갈립니다. 위의 소스와
if (ereg("(^[[:space]]+)", $subject)) {
echo ("입력하신 제목은 $subject 입니다");
} else {
echo ("공백이거나 입력값이 없습니다");
}
이거와  차이가 뭐지요?단지 차이는 ([^[ 와 (^[[ 인데...책을봐도 헷갈리네요.부탁드립니다.
그럼........

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
안녕하세요. <br />
<br />
&amp;nbsp;[:space:]의미는 아시다시피 공백을 나타내는 정규표현식입니다. <br />
&amp;nbsp;^의 의미는 라인의 맨 처음을 나타내고요, <br />
&amp;nbsp;[]는 집합의 의미를 가집니다. <br />
<br />
&amp;nbsp;^의 의미가 []안에 들어갈때는 라인의 맨 처음이 아닌 &#039;!&#039;와 같은 <br />
not의 의미가 되어버립니다. <br />
&amp;nbsp;ereg(&quot;([^[:space]]+)&quot;, $subject)라인은 문자열 중에 공백이 아닌 것을 찾고, ereg(&quot;(^[[:space]]+)&quot;, $subject)라인은 맨처음이 공백이 아닌것을 <br />
찾게 됩니다. <br />
<br />
&amp;nbsp;그럼 즐프하세요 ^^;
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

B
10년 전

문자 클래스(character class)

패턴을 [a-z]나 [A-Z], [0-9]로 표현하는 대신 다음과 같이 문자 클래스(character class)로 간단하게 표현할 수도 있다.

  • [[:alpha:]] : 알파벳 문자 중 하나를 의미하며 [a-zA-Z], 또는 [a-Z]와 동일한 표현이다.
  • [[:digit:]] : 숫자 한 자를 의미하며 [0-9]와 동일한 표현이다.
  • [[:alnum:]] : 알파벳 문자나 숫자 중 하나를 의미하며 [a-zA-Z0-9]와 동일한 표현이다.
  • [[:space:]] : 공백 문자 ( )를 의미한다.


로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인