01. marts 2006 - 17:18Der er
18 kommentarer og 1 løsning
Find String og gem tegn i variabel
Hey!
Jeg vil forklare hvad jeg skal bruge med følgende eksempel...
dette er f.eks. min string : "her er en lille historie om START en bjørn STOP som går en START tur STOP i skoven" jeg skal så bruge en funktion der finder alle START (og STOP) og gemmer hvad der står derimellem (dvs 'en bjørn' og 'tur') i hver sin variabel(/array... for der er et ukendt antal start/stop)...
Jeg har ingen idé om hvor svært dette er og om det kan lade sig gøre?!
using System; using System.Text.RegularExpressions;
namespace e691908 { class Program { static void Main(string[] args) { string dinTekst = "her er en lille historie om START en bjørn STOP som går en START tur STOP i skoven";
Regex r = new Regex(@"START\s*(?<ord>.*?)\s*STOP"); Match m = r.Match(dinTekst); while (m.Success) { Console.WriteLine(m.Groups["ord"].Value); m = m.NextMatch(); } } } }
hmmm... nu ser min kode sådan her ud; ---------------- private void button2_Click(object sender, System.EventArgs e) { WebRequest wr = WebRequest.Create(textBox1.Text); string html = new StreamReader(wr.GetResponse().GetResponseStream()).ReadToEnd(); textBox2.Text = html; string startBetingelse = textBox3.text; string stopBetingelse = textBox4.text;
Regex r = new Regex(startBetingelse + @"\s*(?<ord>.*?)\s*" + stopBetingelse); Match m = r.Match(html); while (m.Success) { //textBox5.AppendText = m.Groups["ord"].Value; m = m.NextMatch(); } } -------------
men så melder den den der fejl igen --> "'System.Windows.Forms.Control.text' is inaccessible due to its protection level" ... og refererer til textbox3 og 4... ?!
hmm... den har lidt problemer med hvis der er linie skift i den string man undersøger... er det noget du umiddelbart har en løsning på?? Så vidt jeg kan teste mig frem til opstår fejlen når der er et linieskift i den string den får mellem START- og STOP-betingelserne...
eksempel... hvis html = ---- </div> </body> </html> ---- hvis START = "</div>" og SLUT = "</html>", giver den resultatet </body>... MEN... hvis nu START = "</di" og SLUT = "</html>", så giver den intet resultat!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.