컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Java/자바] 소수점 이하 버리기, 실수를 정수로 변환; float, double to ...Java/자바] 소수, 정수부/소수부 구하기, 소수점 이하만 추출; Get FRACTION...Perl/펄] 실수, 정수부/소수부 구하기, 소수점 이하만 추출; Get FRACTIONA...Excel/엑셀] 분수 입력, 소수를 분수로 변환 표현 방법; Fraction Input,...Excel/엑셀 VBA] 숫자 앞에 공백 추가, 자릿수 맞추기 함수; Add Leading...자바스크립트] 숫자 앞에 공백 추가, 자릿수 맞추기; Leading Spaces to Nu...자바스크립트] 구구단 출력, 구구단표 만들기; HTML JavaScript Multipli...Java/자바] 구구단 출력, 구구단표 만들기 자바 소스; Multiplication Ta...C언어] 구구단 출력, 구구단표 만들기 C소스; Multiplication Table 99...Perl/펄] 구구단 출력, 구구단표 만들기; Multiplication Table 99

Perl/펄 정규식] HTML 태그 속의 텍스트, URL 링크 추출; Regex

Thursday, March 01, 2007

특정 HTML 태그 속의 텍스트를 정규식으로 추출하는 방법입니다. 예를 들어, <title></title> 태그 속의 페이지 제목을 이 방법으로 추출할 수 있습니다. HTML이 아닌 일반 텍스트 파일에서도 사용 가능합니다.

정규식 사용법 중에서 가장 중요하고 가장 실용적인 예제일 것입니다.

아래 예제에서, $1 이라는 것은, 정규식에서 첫번째 소괄호"()"가 매치되는 부분이 자동으로 저장되는 변수입니다. 읽기 전용 변수이기에 $1 에 수동으로 값을 대입할 수는 없습니다.

정규식으로, 변수에서 문자열 추출 예제


파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;

  my $foo;
  my $result;

  #####################################################
  # 타이틀 태그 속의 텍스트 추출

  $foo = "<title>mwultong의 소설</title>";
  # 다음 정규식에서 (.*) 바로 이 부분이 캡처되는 부분입니다.
  # 정규식을 둘러싸는 슬래시 기호(/)가 태그 안에서도 중복되기에
  # \/ 이렇게 앞에 백슬래쉬(\)를 붙여서 이스케이프했습니다.
  $foo =~ /<title>(.*)<\/title>/;
  $result = $1;

  print $result, "\n";
  # 출력 결과: mwultong의 소설





  #####################################################
  # HTML 링크 태그에서, URL만 추출

  # 문자열 속에 이미 큰따옴표가 사용되기에, 문자열 정의는 작은따옴표를 사용했음
  $foo = '<a href="http://ca.geocities.com/mwultong/"><img src="img/title.gif" title="소설 Home" alt="mwultong 소설" /></a>';
  $foo =~ /<a href="(.*)"><img src=/;
  $result = $1;

  print $result, "\n";
  # 출력 결과: http://ca.geocities.com/mwultong/




그렇지만 HTML 파일 전체를 TXT 로 변환한다든지 하는 용도로는 위의 예제를 사용하기 곤란합니다. HTML 의 모든 태그를 제거하는 것은 정규식으로는 사실상 불가능합니다. 중첩된 태그나, 태그 속에서 행갈이가 된 경우, 닫히지 않은 태그의 처리 등 여러 가지 복잡한 문제가 많기 때문입니다: 참고 ▶▶ PHP] HTML 본문 텍스트 추출, 태그 제거; HTML to TEXT; Strip Tags



실제 HTML 파일에서 문자열을 추출하는 실용적인 예제입니다: ▶▶ Perl/펄 정규식] HTML 파일, 문자열(타이틀), URL 추출; UTF-8 Regex

추출 결과를 배열에 저장: ▶▶ 펄/Perl 정규식] 문자열 추출; Regex String Extract Example



0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top