Я пытаюсь создать приложение, которое выполняет следующие действия:
1) пишет текст в поле richtextbox
2), когда пользователь нажимает кнопку, приложение заменяеттекст с другим текстом в {} фигурных скобках.
я хочу, чтобы в следующий раз регулярное выражение выполняло поиск любого текста, который должен исключать те, которые присутствуют в {}.
например:
мой мир - это хороший мир и счастливый мир, и он станет лучшим для всех.
первый проход - измените слово "мир"
мой {мир | счастливое место | дом} хорош {мир | счастливое место | дом} и счастливый {мир | счастливое место | дом} и будет лучше {мир | счастливое место | дом}для всех.
второй проход - в этом проходе измените слово "счастливый"
. Я хочу, чтобы регулярное выражение игнорировало все экземпляры, окруженные {}.В {world | happy place | home} появляется слово «happy», но его не следует трогать.
теперь может кто-нибудь помочь мне с построением этого регулярного выражения?
Проще говоря, я хочу включить слово и исключить все, что попадает между {}.Также обратите внимание, что слово может быть строкой.
, например, для: иногда я мог бы захотеть заменить строку «счастливое место».
любая другая логика, кроме регулярных выражений, также может помочь.
мой код:
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")