2012-12-24 1 views
1

나는 내 사이트에오고 있지만이 표시되지하지만 http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx을 따른 구글에서 쿼리를 구문 분석을 시도하고, 정규식 친구와, 내 정규식은 옳았다.정규 표현식 결과가 C#에 표시되지 않습니까?

imgurl=http://www.blabla.com/products/W7i5W4Pw4fH22Mih/P_500.jpg&q=ASUS+Rampage+II+Extreme+LGA1366+Intel+X58+DDR3-1600+ATX+Motherboard&imgrefurl=http://www.blabla.com/Mboards/Intel/Rampage_II_Extreme/&usg=__4HSriQuFeVXg5AWsOGlZlsAmMmg=&h=500&w=500&sz=37&hl=en&start=1&zoom=1&tbnid=9ImqgVuzVz5ThM:&tbnh=130&tbnw=130&ei=MKrYUNm9MI6zrAfWi4GQBw&um=1&itbs=1&ptbm=isch 

그리고 여기 내 코드 : I 시도하지만 그 라이브 개발의는 ....

그것의 내가 분석 할 문자열을 표시되지.

string Website = url; //url 
string regularExpressionPattern = @"&q=(.*?)&imgrefurl"; 

MatchCollection matches = Regex.Matches(Website, regularExpressionPattern); 

foreach (Match m in matches) 
{ 
    MessageBox.Show(m.Groups[1].Value); 
} 
System.Diagnostics.Debugger.Break(); 

디버거를 사용하더라도 결과가 좋지 않습니까? NB : 내가에서는 Microsoft Visual C# 2008, 윈도우 XP를 사용하여 2

+2

재현 할 수 없습니다. ASUS + Rampage + II + Extreme + LGA1366 + Intel + X58 + DDR3-1600 + ATX + Motherboard 값을 가진 예상 그룹과 일치하는 항목이 하나 있습니다. – Oded

+1

두 번째 Oded의 의견입니다. 방금이 코드를 실행하고 같은 결과를 얻었습니다. – pstrjds

+0

예,하지만 Microsoft Visual C# 2008이 나타나지 않습니다. 이 문제가 있습니까? – radiaku

답변

2

그것은 나를 위해 잘 작동 :

screenshot of program run

내가 문자열이 포함 된 생각 포함하지 않는 것으로 판단됩니다.

+0

덕분에, 그 당신이 말한 것처럼, 그 ** 몇 가지 이상한있어 앰프 ** 문자로 – radiaku

+0

@ radiaku : 당신은 '&'을 의미합니까? 이를 문자 엔티티 참조라고합니다. –

0

나는 마침내 내 자신의 해답을 발견 ...

이 내 애플 리케이션에 다운로드에 HttpWebRequest를를 사용하는 자사의 앰프를 추가; &

후 그래서이처럼 보이는 URL ...

imgurl=http://www.blabla.com/products/W7i5W4Pw4fH22Mih/P_500.jpg&q=ASUS+Rampage+II+Extreme+LGA1366+Intel+X58+DDR3-1600+ATX+Motherboard&imgrefurl=http://www.blabla.com/Mboards/Intel/Rampage_II_Extreme/&usg=__4HSriQuFeVXg5AWsOGlZlsAmMmg=&h=500&w=500&sz=37&hl=en&start=1&zoom=1&tbnid=9ImqgVuzVz5ThM:&tbnh=130&tbnw=130&ei=MKrYUNm9MI6zrAfWi4GQBw&um=1&itbs=1&ptbm=isch 

그 이상한

?