我試圖建立其執行以下的應用程序:忽略在正則表達式表達大括號
1)寫一些文本在RichTextBox
2)當用戶點擊一個按鈕,該應用將用{}大括號中的另一個文本替換文本。
我想要的是,下一次,正則表達式搜索任何文本,它應該排除出現在{}中的文本。
爲如:
我的世界是世界的好和快樂的世界,將是每個人的更美好的世界。
第一關 - 改變字的「世界」
我{世界|快樂的地方|家}良好{世界|快樂的地方|家}和快樂{世界|快樂的地方|家居}和意志對每個人來說都是一個更好的{world | happy place | home}。
第二遍 - 改變單詞這一關我想正則表達式忽略它們由{}包圍所有實例「快樂」
。通知詞開心地出現在{world | happy place | home},但它不應該被觸動。
現在任何人都可以幫助我建立這個正則表達式嗎?
簡而言之,我想包括該詞並排除{}之間的所有內容。另請注意,這個詞可以是一個字符串。
例如:有時我可能想要替換字符串「幸福的地方」。
除正則表達式以外的其他邏輯也可以提供幫助。
我的代碼是:
Dim fil2 As New StreamReader("new2.txt")
Dim i As Integer = 0
Dim start2 As Integer = 0
Dim rgx As Regex
Dim rpl As String = RichTextBox1.Text
Do While fil2.Peek > -1
Dim StringToCheck As String = fil2.ReadLine()
Dim prev As String = StringToCheck.Split("|")(0).Trim()
If (StringToCheck.Split("|")(0).Split(" ").Count >= 2) Then
Try
rgx = New Regex("(?<=(^|})[^{]*)" & prev & "(?=[^}]*($|{))")
Dim z As Integer = 0
rpl = rgx.Replace(rpl, "{" & StringToCheck & "}")
Catch ex As Exception
End Try
End If
Loop
fil2.Close()
rpl = rpl.Replace("{? ?|? ?|? ! ?}", " ")
RichTextBox1.Text = rpl
MsgBox("done")
你最終的字符串應該是什麼? –
這取決於要替換的列表中有多少單詞。它是動態的。但給出一個總體佈局,不應該有任何嵌套{} – xhammer