최근에 Java 정규 표현식을 공부하기 시작했고 실제로 몇 가지 상호 작용하는 작업을 발견했습니다. 예를 들어 이제 "제품 이름", "제품 설명"및 "이 제품의 판매자"를 찾아야합니다 . 다음 HTML 코드의 (I 코드의 큰 chunck에 대한 죄송하지만 매우 간단)Java 정규 표현식에 대한 초보자 질문
<td class="sr-check">
<input type="checkbox" name="cptitle" value="678560038" /></td>
<td class="sr-image" style="width: 80px;"><a href="/Nikon-D300S-12-3-678560038/prices-html" class="strictRule" rel="nofollow"><img src="http://img01.static-nextag.com/image/Nikon-D300S-12-3-MP-Digital-SLR-Camera-Body-Black/0/000/006/789/461/678946110.jpg" alt="Nikon D300S 12.3 MP Digital SLR Camera Body - Black" class="imageLink strictRule" height="75" width="75" id="opILink_0" title="Nikon Digital Cameras - Nikon D300S 12.3 MP Digital SLR Camera Body - Black" /></a><div class="breaker"> </div></td>
<td class="sr-info">
<div class="sr-info">
<a id="opPNLink_0" class="underline" style="font-size:16px" href="/Nikon-D300S-12-3-678560038 /prices-html" >Nikon D300S 12.3 MP <b>Digital</b> SLR <b>Camera</b> Body - Black</a> <div class="sr-subinfo">
<div class="sr-info-description">SLR - 13.1MP, 12.3MP - 1x Optical Zoom - CompactFlash, SD/MMC Memory Card - 3in.</div>
<div class="rating">
<img src="http://img01.static-nextag.com/imagefiles/stars/stars4_10px.gif" alt="4/5 stars" title="4/5 stars" /> (92 user ratings)</div>
<div style="clear: both;">
<!-- nxtginc=nextag.api.ServerInclude$JSPIncludeWriter(/buyer/ATLSSI.jsp?ptid=678560038&dts=y) -->
<a id="_atl_0" style="" href="http://www.nextag.com/serv/main/buyer/MyPDir.jsp?list=_transCookieList&cmd=add&ptitle=678560038" rel="nofollow">+ Add to Shopping List</a> |
<!-- endnxtginc -->
<a rel="nofollow" id="mltLink_0" class="mlt-link" href="/Digital-Cameras--zz500001z2z678560038zB2dgz5---html">See More Like This</a>
</div>
<div id="fsLink_0" class="featuredSeller">
<a rel="nofollow" class="featuredSeller" id="opFSLink_0_0" href="/norob/PtitleSeller.jsp?chnl=main&tag=785646073amp;ctx=x%2BN%2Fs9zy56l4u8RXCzALE1jeLesDMzeK09rPQEdK3Yjx395ZzX9cMh9N5JAxjk7xPqF9hjk2ztM5IRXU5nspLubIXYaVzI%2B%2Fg7h1Qz58TzgvrWuNawV8qEIqqSmClArWMq6mpzNRuSlgg2xCXYObNnaIH00iKSUmBawDRvecwbCpAxhXgXoLEiEinTwr3EipComdzxL9UHFYTLoWUToUB5SRSsolQmEJ3mgnnvu83%2FC8W34TGpN9mJo%2BnyAeTkt4&ptitle=678560038" target="_blank" >Thundercameras</a>:$1,289
<a rel="nofollow" class="featuredSeller" id="opFSLink_0_1" href="/norob/PtitleSeller.jsp?chnl=main&tag=797076595&ctx=x%2BN%2Fs9zy56l4u8RXCzALE1jeLesDMzeK09rPQEdK3Yjx395ZzX9cMh9N5JAxjk7xPqF9hjk2ztM5IRXU5nspLubIXYaVzI%2B%2Fg7h1Qz58TzgvrWuNawV8qEIqqSmClArWMq6mpzNRuSlgg2xCXYObNrcWLhL%2BhryuAGhXNhYSPE%2BpAxhXgXoLEiEinTwr3EipComdzxL9UHFYTLoWUToUB5SRSsolQmEJ3mgnnvu83%2FC8W34TGpN9mJo%2BnyAeTkt4&ptitle=678560038" target="_blank" >PhotoVideoSuperStore</a>:$1,269
<a rel="nofollow" class="featuredSeller" id="opFSLink_0_2" href="/norob/PtitleSeller.jsp?chnl=main&tag=803555293&ctx=x%2BN%2Fs9zy56l4u8RXCzALE1jeLesDMzeK09rPQEdK3Yjx395ZzX9cMh9N5JAxjk7xPqF9hjk2ztM5IRXU5nspLubIXYaVzI%2B%2Fg7h1Qz58TzgvrWuNawV8qEIqqSmClArWMq6mpzNRuSlgg2xCXYObNt06qcvLJ5UQz7S3zKd4urWpAxhXgXoLEiEinTwr3EipComdzxL9UHFYTLoWUToUB5SRSsolQmEJ3mgnnvu83%2FC8W34TGpN9mJo%2BnyAeTkt4&ptitle=678560038" target="_blank" >Digitalelect</a>:$1,279 </div>
내가 생각하는 것 :
(1) <td class="sr-image >
태그에서 제품 이름을 파고 , 정규 표현식 사용
exp ="<td><span\\s+class=\"sr-image\"[^>]*>"
+ ".*?</span><a href=\""
+ "([^\"]+)"
+ "\"[^>]*>"
+ "([^<]+)" + "</a>.*?</td>";
(2) <div class="sr-info-description">
태그에서 제품 정보를 찾으십시오.
exp = "<div class="sr-info-description"> [^>]*>"
(3) <div id="fsLink_0" class="featuredSeller">
태그에서 판매의 이름을 파고. 내가 잘못된 트랙에서 오전 또는 내 일반 expressiona 잘못이 있다면 당신이 저를 해결 할 수 있다면 난 그냥 자바 정규 표현식을 사용하여 learing 시작하고
exp = "<div id="fslink_0" class="featuredSeller[^>]*>"
+ ".*?</span><a rel=\""
+ "([^\"]+)"
+ "\"[^>]*>"
+ "([^<]+)" + "</a>.*?</td>";
, 나는 감사하겠습니다. 고마워.
HTML 구문 분석을위한 정규식을 피하십시오. –
이 작업에는 정규식을 사용하지 말고 (x) html 파서를 사용하는 것이 좋습니다. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –
Thanks Phild를 참조하십시오. 나는 당신의 조언을 원할 것입니다. 태그가 간단하기 때문에 제품 정보를 얻는 것에 관한 두 번째 쿼리에 대해서만 궁금합니다. –
Kevin