2016-03-05 38 views
1

我有这种格式的文本文件行:VB.NET - 它不断替换本身

word1|word2|word3 
anotherword1|anotherword2 

我试图通过每一个该文件的每一行,一旦程序检测每个字一个分裂如果richtextbox具有这些单词中的一个,则将用未被分割的行替换该单词。例如:从字1到字1 |单词2 | 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