게시판 본문 ASP, ASP.NET, IIS & Script - Read Only

re: html tag를 없애는 정규식에서의 궁금증
작성자: 송원석
작성일시: 2004-04-30 18:53,  조회수: 3,296
안녕하세요? 송원석입니다. ^_^

무슨 말씀이신지 잘 이해했습니다. 그럼 질문하신 내용을 하나씩 차분히 살펴보도록 하겠습니다.
1. "<.+?>"
이 정규 표현식 패턴을 분석해보면 이렇습니다. < 문자는 그냥 그대로 이해하시면 됩니다. 즉 < 문자로 시작하고... 그 다음에 나오는 . 문자는 모든 문자를 의미하는 정규 표현식 문자입니다. 따라서 < 문자 다음에는 어떤 문자든지 다 나올 수 있습니다. 그리고 그 다음에 나오는 + 문자는 바로 앞의 문자가 최소한 한 개 이상이 나온다는 의미입니다. 따라서 지금까지는 < 문자로 시작하면서 어떤 문자든지 그 다음에 나타날 수 있는데 최소한 한 개 이상이 나온다는 뜻이 됩니다. 여기까지는 이해되시죠? ^_^

그리고 그 다음에 ? 문자가 나오는데 이것은 잠시 후에 다시 설명을 드리겠습니다. 그 마지막으로 나오는 문자는 > 문자이므로 > 문자로 끝난다는 뜻입니다. 결국 위의 정규 표현식 패턴에서 ? 문자만 빼고 의미를 요약해본다면 < 문자로 시작하면서 > 문자로 끝나고 그 사이에 어떤 문자던지 한 글자 이상 나오는 모든 문자열을 의미합니다. 즉 태그의 형태를 지닌 문자가 되는 것이죠.

그런데 한 가지 문제가 있습니다. 예를 들어서 작업의 대상이 되는 문자열이 <TAG>ABC</TAG> 라고 가정한다면 위의 정규 표현식 패턴은 <TAG> 와 </TAG> 를 골라내는 것이 아니라 <TAG>ABC</TAG> 전체를 의미하게 됩니다. 왜냐하면 전체 문자열 역시도 < 문자로 시작해서 > 문자로 끝나는 것은 마찮가지니까요. 그래서 ? 문자를 추가해주는 것인데 이 문자는 최소한 적은 글자수를 만들면서 조건을 만족시키기 위해서 노력합니다. 따라서 <TAG> 와 </TAG> 가 정확하게 얻어지는 것이죠.

그리고 정규 표현식에는 정답이 없습니다. 지금 이 정규 표현식 패턴도 수 많은 가능성들 중의 하나일 뿐입니다. 예를 들어서 저는 똑같은 작업을 위해서 <[a-zA-Z\/\s][^>]*> 라는 정규 표현식 패턴을 사용하고 있습니다. 결국 보다 더 효율적인 정규 표현식을 구성하시는 것이 포인트입니다. ^_^
2. < 를 < 로 치환하는 문제
제 생각에는 이것은 게시판 편집기가 원본 코드를 자동으로 변환해버린 것입니다. ^_^
즉 이 코드의 원본은...
strOutput = Replace(strOutput, "<", "<")
strOutput = Replace(strOutput, ">", ">")
가 아니라...
strOutput = Replace(strOutput, "<", "&lt;")
strOutput = Replace(strOutput, ">", "&gt;")
입니다. 그런데 그 글을 작성하신 분이 그냥 코드를 복사해서 붙여 넣어서 데브피아의 게시판 편집기가 자동으로 꺽쇠 문자를 변환해 버린 것이죠.
3. stripHTML = strOutput
이 부분은 Function 프로시저의 결과를 리턴해주는 코드입니다. 이것은 오류가 아니라 비주얼 베이직 계열의 언어상에서 공통된 사항으로서 Function 프로시저의 결과값을 리턴해주기 위해서 함수명과 동일한 변수에 결과값을 할당해 주는 것입니다. 이에 관한 보다 자세한 내용은 관련 서적들을 참고해보시면 잘 나와있을 것입니다. ^_^

감사합니다.
IP 주소: 211.222.24.6
전체 2,095 건의 게시물, 84 페이지로 구성된 ASP, ASP.NET, IIS & Script 게시판의 71 페이지입니다.
게시물
364

html tag를 없애는 정규식에서의 궁금증

전C

2004-04-30 5,460

re: html tag를 없애는 정규식에서의 궁금증

송원석

2004-04-30 3,296
362

re: html tag를 없애는 정규식에서의 궁금증

전C

2004-04-30 3,713
361

re: html tag를 없애는 정규식에서의 궁금증 [1]

송원석

2004-04-30 3,332
360

배열에 대해 궁금한게 있는데요..

오마르

2004-04-29 1,036
359

re: 배열에 대해 궁금한게 있는데요.. [1]

송원석

2004-04-29 3,038
358

안녕하세요~ ^^

오마르

2004-04-28 879
357

re: 안녕하세요~ ^^

송원석

2004-04-28 2,937
356

ㅎㅎ 접니다.

궁금이

2004-04-28 967
355

re: ㅎㅎ 접니다.

송원석

2004-04-28 3,415
354

re: ㅎㅎ 접니다. (메일 주소 입니다) [1]

궁금이

2004-04-28 879
353

클래스로 DB 입,출,삭제한다면?

김지영

2004-04-27 897
352

re: 클래스로 DB 입,출,삭제한다면? [1]

송원석

2004-04-27 3,066
351

안녕하세요~ 클레스에서 궁금한거요 ^^

오마르

2004-04-27 959
350

re: 안녕하세요~ 클레스에서 궁금한거요 ^^ [1]

송원석

2004-04-27 3,147
349

안녕하세요~ 정규식에서요~ ^^

오마르

2004-04-26 949
348

re: 안녕하세요~ 정규식에서요~ ^^ [1]

송원석

2004-04-26 3,227
347

파일큐브, 윈도우2000 서버와 윈도우XP에서의 차이점은?

영호

2004-04-25 983
346

re: 파일큐브, 윈도우2000 서버와 윈도우XP에서의 차이점은?

송원석

2004-04-25 3,111
345

아..........답답해서.....도와주세요...

최경우

2004-04-24 995
344

re: 아..........답답해서.....도와주세요... [1]

송원석

2004-04-25 2,978
343

즐거운 주말되세요~ ^^ [1]

오마르

2004-04-24 889
342

질문 할꼐 많은데 한번에 싸잡아서 작성합니다.

궁금이

2004-04-23 1,021
341

re: 질문 할꼐 많은데 한번에 싸잡아서 작성합니다.

송원석

2004-04-24 3,515
340

RSS 에 대한 질문이 있는데요.. [1]

오마르

2004-04-23 1,009