2014-07-17 5 views
0

내가 약간의 HTML을 구문 분석하고 정규 표현식을 사용하고, 현재 내가 가진 :허용 '@'문자열 정규식 내에서

(?<='>)(.*?\w)(?=<) 

소스가 좀 지저분하다 :

<tr style='mso-yfti-irow:2;height:17.15pt'> 
    <td width=319 valign=top style='width:239.4pt;background:#C0504D;padding: 
    0cm 5.4pt 0cm 5.4pt;height:17.15pt'> 
    <p class=MsoNormal><b><span style='color:white'>Personal Email Address<o:p></o:p></span></b></p> 
    </td> 
    <td width=319 valign=top style='width:239.4pt;padding:0cm 5.4pt 0cm 5.4pt; 
    height:17.15pt'> 
    <p class=MsoNormal><span style='color:#1F497D'><a 
    href="mailto:[email protected]">[email protected]</a></span><span 
    style='color:#0070C0'><o:p></o:p></span></p> 
    </td> 

결과 () 완전 분석 소스 코드에서 :

1 이름 1 : 존 스미스 1 : 개인 이메일 주소 1 : 날짜 1을 시작 13/07/2014 1 : 최종 날짜 1 : 31/08/2 014 1 : 비용 센터 1 : 출생 1 날짜 : 1 건물 15/04/1978

이 때문에의 이메일 주소를 캡처 거부 '@'.

정규식 내에서 @을 어떻게 캡처합니까?

UPDATE : 문제는 '@'를 아포스트로피하지 않을 것으로 보인다

이 는 어떻게 추가 할

(?<='>)(.*?\w)(?=<) 
또는 ">

+1

HTML을 구문 분석 할 때 HTML 구문 분석기를 사용하지 않는 이유는 무엇입니까? 예 : .NET 용 [HTML 민첩성 팩] (http://htmlagilitypack.codeplex.com). –

+0

감사합니다. Damien, 앞으로는 아마도 이것을 사용할 것입니다.하지만 제 직장에서는 제 기계에 추가 할 수 없거나 할 수없는 것을 조금 제한하고 있습니다. 멋진 작은 팩 비록, 집에서 이것을 사용하고있을 것이다;) –

답변

1

주로 @와 따옴표하지의 문제 기호,

(?<='>|">)(.*?\w)(?=<) 

DEMO

위의 정규 표현식은 '> 또는 ">으로 가장 짧게 매칭되며, 여기서 마지막 문자는 단어 문자 여야하고 < 심볼이 뒤따라야합니다.

+0

나는 이것을 몇 분 전에 알아 차렸다, Avinash에게 감사한다, 나는 OR를하는 법을 모르고 있었다. 매우 감사. –