묻고답하기

정규표현식을 공부하다 보니까 생각보다 많이 헷갈리고, 어렵네요.
저만 그런건지, 아니면 다른 분들도 그런건지...ㅡ_ㅡ;a
그럼 질문 드릴께요.  

우선 질문내용 중에 있는 정규표현식 테스트에 사용된 코드는...

<?
$rep=ereg_replace($pattern,"@",$str);  //$str 은 폼에서 받은 문자열, $pattern은 폼에서 입력한 패턴문자 입니다.
echo nl2br($rep);
?>

<질문1>
a 라는 문자를 a? 와 a* 패턴문자로 찾아서 @문자로 바꾸면(a? , a* 따로 따로 테스트)

@@

와 같이 출력이 되던데요. a 를 엄밀히 따지면, null+a+null 로 구성되어 있는 문자이기 때문에 결과가...

@@@

와 같이 출력되어야 되는 것으로 생각이 되는데, 어떻게 해서

@@

와 같은 결과가 나오는 건가요?
그리고, a* 이나 a? 은 a, aa, aaaaaaa...등의 문자 말고도 null문자도 검색해 낼 수 있는 건가요?

<질문2>
a?b?c? 패턴문자를 조합해 보면...

null
a
ab
ac
abc
b
bc
c

와 같은 조합이 나오는데요.
abcde 문자를 a?b?c? 패턴문자로 찾아서 @문자로 바꾸면 결과가...

@@d@e@

와 같이 출력되던데요. 어떻게해서 이런 결과가 나오는 거죠?
제가 생각한 바로는 a?b?c? 패턴문자가 null과 abc라는 가정하에 abcde 문자열에서 a앞에 null문자를 @로 바꾸고, abc문자를 @로 바꾸고, 각 문자 사이에 null문자를 @로 바꾸어서 위와 같은 결과가 나온 것 같은데....맞나요?

<질문3>
이번에는 도저히 감히 안 잡히는 결과가 나와서 질문을 드리는 건데요.
공백문자+개행문자를 a* 패턴문자로 찾아서 @로 바꾸면

@ @ @  <-- @공백@공백@
@

와 같은 결과가 나오고, .* 패턴문자로 찾아서 @로 바꾸면

@@

로 나오던데요. 어떻게해서 이런 결과가 나오는 건가요?

<질문4>
공백문자 1개를 c* 패턴문자로 찾아 @로 바꾸면, 공백문자 양쪽에 Null이 존재하기 때문에...

@ @ (@과 @사이에 공백문자 1개 존재)

로 바뀌는 것은 이해하겠는데요.
이번에는 공백문자 1개를 c*|[[:space:]] 패턴문자로 찾아 @로 바꾸면 이번에도 공백문자 양쪽에 null문자가 있기 때문에...

@@@

라는 결과가 나올 것이라고 생각했는데,

@@

와 같은 결과가 나오네요. ㅡ_ㅡ;a. 공백문자 양쪽에 null 이 있기 때문에 c*|[[:space:]] 패턴문자로 검사할 경우 공백문자 1개는 ...

null공백문자null

이기 때문에 null은 c* 패턴문자에 의해, 공백문자는 [[:space:]] 패턴문자에 의해서

@@@

로 나와야 정상이 아닌가요?


아직 정규표현식에 대해 확실히 알지 못해 질문이 좀 횡설수설하고 길지만, 모르는 부분을 그냥 넘어가자니 마음이 찜찜해서 도저히 그냥 넘어가지 못 하겠더라구요. ㅡ_ㅡ;;
모르는 사람의 마음을 깊이 헤아리셔서 부디 좋은 답변 부탁드려요(__)
글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
알까 창닫기 기능을 없애고 싶어요.  
채성민 밑에 플래쉬링크 관련질문 다시요  
하가렌 제로보드는 아니지만 로컬서버에 대해서.. [1] 2007.08.10
cometwith 작업을 마쳤으나 페이지에 오류가 있습니다. [2] 2007.08.10
박혜원 XP스킨을받앗는데요 [1] 2007.08.10
피타고라스 남은기간 표시하는 소스를 알고 싶습니다. [2] 2007.08.10
김정식 psd 파일과 홈소스를 받었는데요? [1] 2007.08.10
김기욱 게시판에서 내용란에 기본문항을 어떻게 넣어야 되나요? [1] 2007.08.10
이중경 구문 질문입니다. [2] 2007.08.10
Ris [정말 급한 문제입니다] 노프레임 홈페이지를 만드는중... 메뉴 문제! (그림 첨부) [4] 2007.08.10
정주호 왼쪽 관련 [1] 2007.08.10
김기훈 노프레임을 기초부터 배우고 싶습니다.  
강민석 Zetyx.net 도메인 포워딩이 자주 안되는 경우가 발생합니다. [2] 2007.08.10
신기후 iframe내의 그림 움직이기.  
이중경 노프레임에서 두개의 개시판(두개의 테이블 정보)정보를 뽑을수 있나요? [3] 2007.08.10
김민규 정규표현식에 대한 질문이요(2차 질문)...  
황동수 php 관련 문의드립니다.  
채성민 플래쉬 링크질문인데요, [1] 2007.08.10
김지만 흑 이거..외부로그인..  
반야 플래쉬에서 동영상 파일 재생 관련 질문입니다.  
아케 메뉴를 클릭하면 레이아웃이 흔들립니다-_-;; [2] 2007.08.10
이중경 구문 질문입니다. [3] 2007.08.10
신기후 크롬리스라는거요...창닫기 안되나요...  
히틀러충성 플래시에서 긴노래(용량많은 노래?)넣는법 [2] 2007.08.10
이히 답변을 찾지못해 이렇게 질문합니다. 크롬리스윈도우관련 2가지 [1] 2007.08.10
이히 못찾아서 질문합니다. 크롬리스윈도우관련 2가지, [1] 2007.08.10
김지만 정렬 질문....  
박재모 쿼리문을 저장하고 보낼 때에 관련하여 질문입니다. [1] 2007.08.10
김우일 긴급 질문입니다...스피드 필떡 [1] 2007.08.10
송영은 로그인 상태를 제대로 보여주지 못하는데...