C# WebClient és Regex kérdés?
Üdv, ez a kód miért tér vissza mindig az else ággal? Egyszerűen nem értem, a forráskódban meg kellene találja a "Üzeneteid" szót, nem?
WebClient wc = new WebClient();
string forras = wc.DownloadString(@"http:\\www.gyakorikerdesek.hu");
Regex r = new Regex("Üzeneteid");
if(r.IsMatch(forras))
Console.WriteLine("Nincs üzeneted:(");
else
Console.WriteLine("Üzeneted jött!");
Console.ReadKey();
1. tuti jól tölti le a HTML lapot, tesztelted?
2. karakterkódolásra figyeltél? (programod kódolása VS gyakorikérdések kódolása) - bár lehet az "Ü"-nél még nem gáz
3. minek a regex, ha csak sima egyezést vizsgálsz?
Én a helyedben kiíratnám, mit tölt le, és először kézzel nézném meg benne, hogy szerepel az "Üzeneteid".
És igen, rájöttem, pont ez lehet a baj, hogy regex-et használsz.
Ugyanis, ő az "Üzeneteid" mintát akarja ráilleszteni a teljes HTML kódra, ami nyilván nem illik rá. Legyen inkább ".*Üzeneteid.*".
1., A forráskód bejön, megtalálom benne amit keresek
2., A Text Visualizer és a HTML visualizerrel sem látok furcsa karaktereket, szerintem a karakterkódolás is jó
3., A Regex szerintem gyorsabb mint végignézni az egész szöveget az én algoritmusommal.(bár kezelni szörnyű)
Regex meg saját lassú algoritmus helyett használhatnád a String indexOf metódusát, pont erre találták ki. :)
if (r.IndexOf("Üzeneteid")>-1) // megtalálta az "Üzeneteid" karakterláncot
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!