Regex

2011-08-29 8 views
0

을 사용하여 RSS 피드의 특정 부분을 얻는 데 도움이 필요합니다. 첫 번째
과 마감일 및 위치 이전에 회사 이름 (JTA Connection)을 추출해야합니다. '마감일 :'및 '위치 :'가없는 것이 좋습니다. REGEX를 사용하여 아래의 RSS 피드에서Regex

<description>JTA Connection Oy<br /> Työsuhde: <br /> Työn laatu: <br />Deadline: 07.09.2011<br />Location: Avoin<br /></description> 

정규식을 사용하여 특정 부분을 추출 할 때 약간의 손실이 발생하므로 어떤 도움이 가장 환영받을 것입니다.

답변

0

회사 명 :

<description>([^<]+) 

마감 :

Deadline:\s([^<]+) 

위치 :

Location:\s([^<]+) 

때마다, 당신이 검색하는 결과가 그룹 1. 당신은 또한 수에 의해 일치 프로그래밍 언어에서 허용하는 경우 "뒤에서보기"기능을 사용하십시오.

또한 전체 문자열과 일치 개별적으로 각 그룹을 얻을 수 있습니다 :

<description>([^<]+)<br\s?/>([^<]+)<br\s?/>([^<]+)<br\s?/>Deadline:\s([^<]+)<br\s?/>Location:\s([^<]+)<br\s?/></description> 

를이 경우, 회사 이름는 그룹 1, 마감일까지 일치하는 그룹 4 그룹에 의해 위치에 의해 5.

당신이 파싱하는 RSS는 항상이 정확한 구조를 가지고 있다고 가정합니다. XML 파서를 사용하는 것이 좋지 않으면을 사용하는 것이 좋습니다.

+0

고맙습니다.이 방법은 가고, 모든 피드는 동일한 구조를 가지고 있습니다. – Andrew

2

RSS 파일은 XML 파일이므로 XML 파서를 사용하여 가장 잘 구문 분석됩니다. 설명 부분이 있으면 대부분의 언어로 배열로 분할하고 "Word :"를 사용하여 문자열의 시작 부분을 비교하여 훨씬 더 효율적으로 원하는 데이터를 얻을 수 있습니다. 그냥 내가 정규식을 사용하는 것이 아닙니다.