>> Edit article
이름
제목
패스워드
: 자료가 이렇게 있거든요. : : 1,2(요기가 첫번째 공백)어쩌구 저쩌구 : 1,3(공백)어쩌구 저쩌구 : : 이렇게 나가는데.. : 혹시 첫번째 공백만 ,로 대치할 수 없을까요?? : 도움을 바랍니다. ----------------------------------- [ 정규 표현식에 대해 알아보자 (1) ] 정규 표현식은 어떤 문자 패턴을 찾아서 수정 및 교환등 웹프로그램 개발시 정교한 문자 처리를 가능하게 해준다. 그럼 정규 표현식의 사용법에 대하여 알아 보자. 첫번째는 기본적인 기호들에 대하여 알아 보겠다. 정규 표현식 기본 문법 '^' 와 '$' '^' 는 바로 문자뒤의 문자열로 시작 됨을 가르킨다. "^The" : 는 "The"로 시작 하는 문자를 말한다. ex) The Car is red, Theater... '$' 는 문자열의 맨 마지막을 가르킨다. "of despair$" : 는 "of despair"로 끝나는 문자열이다. ex) The concept of despair "^hello$" : 는 hello로 시작해 hello로 끝나는 경우 이므로 "hello" 뿐이다. '.', '*' 와 '+' 그리고 '?' '.' 은 어떤 문자든지 임의의 한문자를 말한다.꼭 하나의 문자가 있어야 한다. ex) "x.z" 는 xyz, xxz, xbz 등이고 xz난 xyyz는 안된다. '*' 는 바로 앞의 문자가 없거나 하나 이상의 경우를 말한다. ex) "ab*" 는 a, abc, ab, abbbb 등을 말한다. '+' 는 바로 앞의 문자를 나타내면 꼭 1나 이상이어야 한다. ex) "ab+" 는 abc, abbb 등이고 a는 되지 않는다. '?' 는 바로 앞의 한문자가 있거나 없는것을 말한다. 단지 한문자 만이어야 한다. ex) "ab?" 는 a 또는 ab 를 나타낸다. [], {} 와 () 그리고 | '[]' 는 [] 안에 존재하는 문자들중 한 문자만을 나타낸다. ex) [abc] 는 a 또는 b 또는 c 중에 한문자를 나타낸다. 여기서 '-'를 사용할땐 범위를 나타낸다. 즉 [ a-f ] 는 [abcdf] 와 같은것을 나타낸다. '{}'는 {} 앞에 있는 문자나 문자열의 개수를 정하는 것이다. ex) "ab{2}" 는 "abb"를 나타낸다. 즉 b의 개수가 2개를 나타낸다. "ab{2,}" 는 abb, abbbbb 등 b의 개수가 2개 이상을 나타낸다. "ab{3,5}" 는 abbb, abbbb, abbbbb 와 같이 b가 3개에서 5개 까지를 나타낸다. '()' 는 ()안에 있는 글자들을 그룹화 한다. ex) a(bc)* 는 a, abc abcbc 등 'bc'가 없거나 하나 이상인 경우이다. "a(bc){2}" 는 abcbc 를 나타낸다. '|' 는 OR 연산자 기능을 한다. "kim|lee" 는 kim 또는 lee 둘중 하나를 나타낸다. 지금 까지 정규표현식의 기본적인 기호에 대하여 정리해 보았다. 그럼 다음 시간에는 좀더 복잡한 기호식에 대하여 알아 보겠다. [ 정규 표현식에 대해 알아보자 (2) ] 이번에는 좀 더 복잡한 정규 표현식의 예를 다루어 보자 문자 클래스 [[:alpha:]] 는 [a-zA-Z] 와 동일 [[:digit:]] 는 [0-9] 와 동일 [[:alnum:]] 는 [a-zA-Z0-9] 와 동일 [[:space:]] 는 공백 문자 의미 많은 예제를 이해함으로 좀더 깊이 있게 정규 표현식을 나열해 보자 ^[1-9][0-9]*$ : 1000 또는 200 처럼 처음 숫자가 0 이 아니고 끝까지 숫자만 존재 즉 돈등의 값을 유효 한지 검사 한다. ^(0|[1-9][0-9]*)$ : 0 또는 1000, 200처럼 돈의 단위가 될수 있다. ^(0|-?[1-9][0-9]*)$ : 이표현은 음수 값도 표현 되어진다. ^[0-9]+(.[0-9]+)?$ : 즉 소수점 표현을 위해 나타내었다. '.' 는 임의의 한 문자가 아닌 소수점 마크 '.'을 나타내기 위해 사용 되었다. 즉 20 또는 21.2 같은 소수점 한자리까지만 나타낸다. ^[0-9]+(.[0-9]{2})?$ : 이것은 소수점 두번째까지 나타낸다는 것이다. ex) 0.12 ^[0-9]+(.[0-9]{1,2})?$ : 이것은 소수점 하나 또는 두개까지 인것이다. ^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$ : 이것은 3자리식 짤라서 콤마를 붙여 주면서 소수점 한자리에서 두자리 까지 표현 한다. ex) 12,234,566.12 위와 같이 예를 들어 간단히 설명해 보았다. 위의 부분을 자세히 분석해보구 이해가 확실히 되면 어느 정도 자신이 생길 것이다. 그럼 다음은 마직막으로 자주 웹프로그램에서 사용하는 메일 및 웹등의 유효성을 검사 하여 링크를 걸어 주는 것이 대하여 이야기 해보겠다. [ 정규 표현식에 대해 알아보자(3) ] 이번에는 정규 표현식을 사용 하여 메일 및 웹 링크등의 유효성 검사 및 링크 걸어주기 등에 대하여 알아 보자. 이메일 유효성 검사 이메일에 대하여 알아보면 이메일 주소는 유저명과 서버명을 '@'를 사용 하여 나타낸다. 예를 들면 start@linuxstart.co.kr 과 같이 나타낸다. 유저명의 조건 대문자, 소문자, 숫자 그리고 '.' '-' '_' 을 가질 수있다. 유저명은 '.' 로 시작 또는 끝나서는 안되다. [_0-9a-zA-Z-]+(.[_0-9a-zA-Z]+)* 위와 같이 유저명의 유효성을 검사 할 수 있다. 서버명의 경우 위의 유저명의 경우와 동일하다. 단 '_' 을 사용 해서는 안된다. [0-9a-zA-Z-]+(.[0-9a-zA-Z-]+)* 와 같이 나타낼 수 있다. 전체의 전자우편 유효성 검사는 유저명@서버명 이므로 아래와 같다. ^[_0-9a-zA-Z]+(.[_0-9a-zA-Z+)*@[0-9a-zA-Z]+(.[0-9a-zA-Z]+)*$ 와 같이 표현 할 수 있다. 주소 유효성 검사 HTTP 의 주소등 자동 링크 걸어 주기 위해선 먼저 URL의 유효성을 검사 하여야 한다. URL 은 대문자, 소문자, 숫자 ,'.','_','=','&','?','~','@','/','+' 를 사용 할수 있다 즉 http://([0-9a-zA-Z./@~?&=_]+) 가 된다. 링크를 PHP를 사용하여 HTML로 걸어 주기 위한 방법 $add="www.linuxstart.co.kr"; $pattern = "([0-9a-zA-Z./@~?&=_]+)"; $link = ereg_replace($pattern, "<a href='http://1'>http://1</a>" $add); echo ("$link"); 의 결과 $link 는 다음처럼 변경 된다. <a href='http://www.linuxstart.co.kr'>http://www.linuxstart.co.kr</a> 와 같이 된다. 참고로 1 은 첫번째 괄호안의 값을 말한다. 2는 2번째 등등 그럼 메일 링크의 경우를 보자 $mail = "start@linuxstart.co.kr"; $pattern = "([_0-9a-zA-Z]+(.[_0-9a-zA-Z]+)*)@([0-9a-zA-Z]+(.[0-9a-zA-Z]+)*)" $link = ereg_replace($pattern, "<a href='mailto:1@3'>1@3</a>",$mail); echo ("$link"); 의 결과 $link 는 다음과 같다. <a href=mailto:start@linuxstart.co.kr>start@linuxstart.co.kr</a> 와 같이 된다. 그럼 지금까지 정규 표현식에 대하여 이것으로 마친다... <2000-03-21 : 리눅스스타트>
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved