Ik ben hier nu al een hele dag bezig om een deel gegevens uit een tekstbestand te filteren met behulp van regular expressions.
Het desbetreffende type bestand ziet er als volgt uit:
De items die ik er zou moeten uitfilteren zijn:
string gwver = 4
string cat = ALG
string pri = 4
string port = 0
string wire = BEL
string format = BE
string slug = Tennis - Davydenko niet langer verdacht van corruptie
string code = SPN
string size = 1097
string bdate = 091262008163848
string sig = i9u)2jp3l6kb4zg88t2pmsfd
string lang = nl
string title = Tennis - Davydenko niet langer verdacht van corruptie
string text =
PARIJS 12/09 (AFP)
De Rus Nikolay Davydenko (ATP 6) wordt niet
langer verdacht van het vervalsen van tenniswedstrijden. Dat maakte de
vereniging voor tennisprofs ATP vrijdag bekend. Davydenko werd van
corruptie verdacht nadat hij in augustus 2007 in het Poolse Sopot van de
Argentijn Martin Vassallo-Arguello verloren had.
"De ATP heeft zijn onderzoek beëindigd en heeft geen enkel bewijs
gevonden van een inbreuk op het reglement door de heren Davydenko,
Vassallo-Arguello of wie dan ook die iets met die wedstrijd te maken had",
verklaarde de ATP.
Een goksite had na de opgave van Davydenko tegen Vassalo-Arguello bij
een 2-6, 6-3 en 2-1 stand in het voordeel van de Argentijn besloten om de
weddenschappen stop te zetten. De site was immers van oordeel dat er
abnormaal hoge sommen waren ingezet op die wedstrijd.
Davydenko heeft zijn onschuld altijd staande gehouden en is altijd
blijven verklaren dat hij in die bewuste wedstrijd moest opgeven met een
voetblessure.
string end = ./.SPJ
string date = 09/12/08
string time = 16.37
string footer = BELGA/20080912/SPN037/1N
Ik heb met veel moeite en gesukkel reeds de volgende regular expression kunnen opstellen:
En in C# doe ik dit als volgt
[code=C#]
string pattern = @"gwver=(.*) cat=""(.*)"" pri=(.*) port=(.*) wire=""(.*)"" format=(.*) slug=""(.*)"" code=""(.*)"" size=(.*) bdate=(.*) sig=(.*) lang=""(.*)"" (.*) (.*)$(.*)./.(.*) (.*)\t(.) (.*)(.*)\t(.*)";
Match matches = Regex.Match(text, pattern, RegexOptions.IgnoreCase);
string test = matches.Groups["gwver"].Value.ToString();
[/code=C#]
Om te testen wil ik enkel de waarde van gwver eens aanroepen, maar dit lukt al niet...
Het desbetreffende type bestand ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| gwver=4 cat="ALG" pri=3 port=0 wire="BEL" format=BE slug="Tennis - Davydenko niet langer verdacht van corruptie" code="SPN" size=1097 bdate=091262008163848 sig=i9u)2jp3l6kb4zg88t2pmsfd lang="nl"
Tennis - Davydenko niet langer verdacht van corruptie
PARIJS 12/09 (AFP) = De Rus Nikolay Davydenko (ATP 6) wordt niet
langer verdacht van het vervalsen van tenniswedstrijden. Dat maakte de
vereniging voor tennisprofs ATP vrijdag bekend. Davydenko werd van
corruptie verdacht nadat hij in augustus 2007 in het Poolse Sopot van de
Argentijn Martin Vassallo-Arguello verloren had.
"De ATP heeft zijn onderzoek beëindigd en heeft geen enkel bewijs
gevonden van een inbreuk op het reglement door de heren Davydenko,
Vassallo-Arguello of wie dan ook die iets met die wedstrijd te maken had",
verklaarde de ATP.
Een goksite had na de opgave van Davydenko tegen Vassalo-Arguello bij
een 2-6, 6-3 en 2-1 stand in het voordeel van de Argentijn besloten om de
weddenschappen stop te zetten. De site was immers van oordeel dat er
abnormaal hoge sommen waren ingezet op die wedstrijd.
Davydenko heeft zijn onschuld altijd staande gehouden en is altijd
blijven verklaren dat hij in die bewuste wedstrijd moest opgeven met een
voetblessure.
./.SPJ
09/12/08 16:37
BELGA/20080912/SPN037/1N |
De items die ik er zou moeten uitfilteren zijn:
string gwver = 4
string cat = ALG
string pri = 4
string port = 0
string wire = BEL
string format = BE
string slug = Tennis - Davydenko niet langer verdacht van corruptie
string code = SPN
string size = 1097
string bdate = 091262008163848
string sig = i9u)2jp3l6kb4zg88t2pmsfd
string lang = nl
string title = Tennis - Davydenko niet langer verdacht van corruptie
string text =
PARIJS 12/09 (AFP)
De Rus Nikolay Davydenko (ATP 6) wordt niet
langer verdacht van het vervalsen van tenniswedstrijden. Dat maakte de
vereniging voor tennisprofs ATP vrijdag bekend. Davydenko werd van
corruptie verdacht nadat hij in augustus 2007 in het Poolse Sopot van de
Argentijn Martin Vassallo-Arguello verloren had.
"De ATP heeft zijn onderzoek beëindigd en heeft geen enkel bewijs
gevonden van een inbreuk op het reglement door de heren Davydenko,
Vassallo-Arguello of wie dan ook die iets met die wedstrijd te maken had",
verklaarde de ATP.
Een goksite had na de opgave van Davydenko tegen Vassalo-Arguello bij
een 2-6, 6-3 en 2-1 stand in het voordeel van de Argentijn besloten om de
weddenschappen stop te zetten. De site was immers van oordeel dat er
abnormaal hoge sommen waren ingezet op die wedstrijd.
Davydenko heeft zijn onschuld altijd staande gehouden en is altijd
blijven verklaren dat hij in die bewuste wedstrijd moest opgeven met een
voetblessure.
string end = ./.SPJ
string date = 09/12/08
string time = 16.37
string footer = BELGA/20080912/SPN037/1N
Ik heb met veel moeite en gesukkel reeds de volgende regular expression kunnen opstellen:
code:
1
2
3
4
5
6
| gwver=(.*) cat="(.*)" pri=(.*) port=(.*) wire="(.*)" format=(.*) slug="(.*)" code="(.*)" size=(.*) bdate=(.*) sig=(.*) lang="(.*)" (.*) (.*)$(.*)./.(.*) (.*)\t(.) (.*)(.*)\t(.*) |
En in C# doe ik dit als volgt
[code=C#]
string pattern = @"gwver=(.*) cat=""(.*)"" pri=(.*) port=(.*) wire=""(.*)"" format=(.*) slug=""(.*)"" code=""(.*)"" size=(.*) bdate=(.*) sig=(.*) lang=""(.*)"" (.*) (.*)$(.*)./.(.*) (.*)\t(.) (.*)(.*)\t(.*)";
Match matches = Regex.Match(text, pattern, RegexOptions.IgnoreCase);
string test = matches.Groups["gwver"].Value.ToString();
[/code=C#]
Om te testen wil ik enkel de waarde van gwver eens aanroepen, maar dit lukt al niet...