ik heb een willekeurige string die ik door een spellingscontrole wil halen.
Omdit te doen moet ik de string schoonmaken van symbolen en splitten op een spatie.
Hiervoor kan ik regex gebruiken, dit heb ik gedaan in het volgende voorbeeld:
dit werkt goed enzoals gewilt. Maar nu loop ik tegen het volgende aan.
Ik ben vergeten dat er niet alleen gesplit moet worden op een spatie, maar ook op een "enter(newline)", want anders gaat hij woorden samenvoegen en dat klopt uiteraard niet.
Ik ben geen ster in reguliere expressies, maar ik weet wel dat het newline char \n is.
Maar hoe voeg ik dan toe dat hij in de replace ook de enters overlaat.
als ik het volgende doe:
Return Regex.Replace(strIn, "[^\w\ \n]", "")
(mijn eerste ingeving voor de oplossing)
dan maakt hij ipv het newline teken een " □ "
Hij herkent de newline dus wel maar vervangt hem met " □ "
Hoe kan ik er voor zorgen dat hij de newline met rust laat.
Daarna moet ik uiteraard ook de newline in de regex.split toevoegen maar als ik voor de replace weet hoe het moet dan wil ik uiteraard eerst weer zelf puzzelen voor de regex.split
groeten Toost
edit:
Er zit nog een foutje in, hij haalt ook de symbolen tussen in een woord weg, maar dit wil ik zelf ook eerst proberen op te lossen.
Omdit te doen moet ik de string schoonmaken van symbolen en splitten op een spatie.
Hiervoor kan ik regex gebruiken, dit heb ik gedaan in het volgende voorbeeld:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Function CleanInput(ByVal strIn As String) As String Return Regex.Replace(strIn, "[^\w\ ]", "") End Function Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim CleanStr = CleanInput(txtVertaal.Text) Dim s As String() = Regex.Split(CleanStr, " ") Dim counter = 0 For counter = 0 To s.Length - 1 'test weergave in listbox lsSuggestie.Items.Add(s(counter)) Next End Sub |
dit werkt goed enzoals gewilt. Maar nu loop ik tegen het volgende aan.
Ik ben vergeten dat er niet alleen gesplit moet worden op een spatie, maar ook op een "enter(newline)", want anders gaat hij woorden samenvoegen en dat klopt uiteraard niet.
Ik ben geen ster in reguliere expressies, maar ik weet wel dat het newline char \n is.
Maar hoe voeg ik dan toe dat hij in de replace ook de enters overlaat.
als ik het volgende doe:
Return Regex.Replace(strIn, "[^\w\ \n]", "")
(mijn eerste ingeving voor de oplossing)
dan maakt hij ipv het newline teken een " □ "
Hij herkent de newline dus wel maar vervangt hem met " □ "
Hoe kan ik er voor zorgen dat hij de newline met rust laat.
Daarna moet ik uiteraard ook de newline in de regex.split toevoegen maar als ik voor de replace weet hoe het moet dan wil ik uiteraard eerst weer zelf puzzelen voor de regex.split
groeten Toost
edit:
Er zit nog een foutje in, hij haalt ook de symbolen tussen in een woord weg, maar dit wil ik zelf ook eerst proberen op te lossen.
[ Voor 8% gewijzigd door toost op 15-05-2006 11:27 ]
This space for rent. Serious inquiries only please.