Avatar billede zepton Nybegynder
15. august 2006 - 19:34 Der er 8 kommentarer og
1 løsning

Hente bestemte informationer - Eventuelt Regex

Hej Eksperter!

Jeg har nu længe været nødsaget til at bruge arrays til at isolere bestemte informationer, da jeg ikke kunne finde andre metoder. Efter mange søgninger på nettet (jeg skal ikke sige at jeg har søgt på det rigtige), søger jeg nu hjælp her.

Mit problem i en nøddeskal:
Jeg har hentet nogle informationer ud af en html side, med et regulært udtryk (alle matches).

Jeg vil nu have at disse matches skal efterbehandles, hvilket jeg gerne vil gøre på den smarteste måde. Jeg har prøvet med endnu et regulært udtryk til efterbehandling af de matches jeg fandt, også et array der udskiller de brugbare informationer fra de ikke-brugbare. Derefter retunere den værdien jeg skal have.

Hvad jeg gerne vil have er en bedre passende løsning; kan det f.eks. lade sig gøre med et regulært udtryk, der finder et mønster , men kun udskriver en DEL af det mønster? Andre forslag er velkomne!
Avatar billede ksoren Nybegynder
15. august 2006 - 20:31 #1
Man sætter parenteser omkring det man vil fange.. I eksemplet navngivet jeg min fangst "fangmig", som bagefter kan hentes ud af Groups

string s = "<b>fed</b> 123 <b>mere fed</b>";
string re = "<b>(?<fangmig>.*?)</b>";

MatchCollection matches = Regex.Matches(s, re);

foreach(Match m in matches){
    Console.WriteLine(m.Groups["fangmig"]);
}
Avatar billede nielle Nybegynder
15. august 2006 - 20:38 #2
Kunne du eventuelt give nogle eksempler på dine data og på de informationer du gerne vil have du af dem?
Avatar billede zepton Nybegynder
15. august 2006 - 21:11 #3
ksoren -> det er kun én værdi jeg skal fange, kan jeg gøre det på en mere direkte måde?
Så jeg f.eks. har "mere fed" som en string, istedet for at jeg behøver at køre et foreach?
Avatar billede zepton Nybegynder
15. august 2006 - 21:16 #4
nielle -> Det kunne være en string som:
<div class="ja"><b>Titel:</b> (linjeskift [n\]
"TITEL" </div> ville være et godt eksempel, bare koden er meget længere, og indeholder flere værdier jeg skal bruge (ikke på samme tid).
Avatar billede ksoren Nybegynder
15. august 2006 - 21:16 #5
Match match = Regex.Match(s, re);

match.Groups["fangmig"]
Avatar billede nielle Nybegynder
15. august 2006 - 21:18 #6
zepton> Jeg er ikke helt klar over hvad du mener med dit eksempel:

Hvad er inddata?

Og hvad vil du have ud?
Avatar billede zepton Nybegynder
15. august 2006 - 21:29 #7
ksoren -> Det fungere fint. Smid et svar.
Avatar billede zepton Nybegynder
07. december 2006 - 17:52 #8
Jeg vil gerne have spørgsmålet lukket. Så smid venligst et svar!
Avatar billede zepton Nybegynder
31. december 2006 - 14:28 #9
Lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester