我试图建立其执行以下的应用程序:忽略在正则表达式表达大括号
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