Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET-它不断地替换自己_Vb.net_Loops_Replace_Infinite - Fatal编程技术网

VB.NET-它不断地替换自己

VB.NET-它不断地替换自己,vb.net,loops,replace,infinite,Vb.net,Loops,Replace,Infinite,我在文本文件中有以下格式的行: word1|word2|word3 anotherword1|anotherword2 我正在尝试将该文件的每一行中的每个单词逐个拆分,一旦程序检测到richtextbox是否有这些单词中的一个,就会用未拆分的行替换该单词。示例:从word1到word1 | word2 | word3 以下是我到目前为止的情况: Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Butto

我在文本文件中有以下格式的行:

word1|word2|word3
anotherword1|anotherword2
我正在尝试将该文件的每一行中的每个单词逐个拆分,一旦程序检测到richtextbox是否有这些单词中的一个,就会用未拆分的行替换该单词。示例:从word1到word1 | 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替换自己。我只想做一次这个过程


如下所示:

由于单词的存储格式,使用正则表达式将更容易实现您想要的:

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
这应该是你想要的

检查一下