2016-03-05 6 views
1

у меня есть в текстовом файле строк этого формата:VB.NET - это держать себя замену

word1|word2|word3 
anotherword1|anotherword2 

Я пытаюсь разделить каждое слово по одному в каждой строке этого файла и как только программа обнаружения если у richtextbox есть одно из этих слов, это слово заменит незакрепленной линией. Пример: От word1 к Слово1 | word2 | word3

Вот то, что я до сих пор:

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click 
    For Each line As String In File.ReadLines("C:\text.txt") 
     Dim input As String = line 
     Dim result As String() = line.Split(New String() {"|"}, StringSplitOptions.None) 
     For Each s As String In result 
      Try 
       Dim linex As String = line 
       RichTextBox1.Text = RichTextBox1.Text.Replace(s, " " & linex) 
      Catch exxx As Exception 
      End Try 
     Next 
    Next 
End Sub 

Он отлично работает, но после замены, замененный текст до сих пор обнаруженное слово и держать замена себя с word1 | word2 | word3 навсегда. И я хочу сделать этот процесс только один раз.

Как это: Click to see

ответ

2

Благодаря формату слова хранятся в, это будет гораздо легче добиться того, что вы хотите с помощью регулярных выражений:

Dim lines = File.ReadLines("C:\text.txt") 
For Each line As String In lines 
    Dim pat = String.Format("\b({0})\b", line) 
    RichTextBox1.Text = Regex.Replace(RichTextBox1.Text, pat, line) 
Next 

Это должно сделать довольно много, что вам хотеть.

Проверьте это here.

+0

Большое спасибо. Оно работает! – Netero