正则表达式改变字符串中的第二个匹配

时间:2015-01-08 02:30:54

标签: vb.net

Listbox1包含以下字符串:

[随机标题]随机标题[随机第二标题]

[其他一些随机标题]其他一些随机标题

随机标题

[随机标题]随机标题[随机第二标题](blahblah){1234}

[一些随机标题]一些随机标题[一些随机第二标题]

我想留下第一个[。*]并删除第二个[。*]

我希望得到以下结果:

[随机标题]随机标题

[其他一些随机标题]其他一些随机标题

随机标题

[随机标题]随机标题(blahblah){1234}

[一些随机标题]一些随机标题

使用以下代码无法获得所需的结果:

 For i As Integer = 0 To Listbox1.Items.Count - 1
Listbox1.Items(i) = System.Text.RegularExpressions.Regex.Replace(Listbox1.Items(i), "\[.*\].*?(\[.*\])", "")
   Next

请帮帮我

1 个答案:

答案 0 :(得分:0)

我无法用正则表达式来解决它所以我使用了indexof方法。

For i As Integer = 0 To listbox1.Items.Count - 1

try
Dim M1 As Integer = listbox1.Items(i).IndexOf("(")
Dim N1 As Integer = listbox1.Items(i).IndexOf("(", M1 + 2)

Dim M2 As Integer = listbox1.Items(i).IndexOf(")")
Dim N2 As Integer = listbox1.Items(i).IndexOf(")", M2 + 2)

Dim bw1 As String = listbox1.Items(i).Substring(N1, N2 - N1 + 1)
listbox1.Items(i) = listbox1.Items(i).ToString.Replace(bw1.ToString, "")
    Catch ex As Exception
            End Try

next