如何使用正则表达式获取2个字符串之间的字符串

时间:2012-04-06 06:45:31

标签: regex vb.net

说字符串就像

  bla bla bla bla(cat)bladfdskdfd dsgdsdksf(dog)   dfdshfdskdskfsdfkhsdf sdkfhdsfkdf(kathy)fdsfhdskfhdsfkd(doggy)

我想要一个包含

的generic.list(字符串)

凯西

如何使用vb.net中的正则表达式

后来我想做一些比较复杂的事情,例如从“url”:“和”之间获取所有字符串,来自此字符串

  

google.search.WebSearch.RawCompletion( '1',   { “结果”:[{ “GsearchResultClass”: “GwebSearch”, “unes​​capedUrl”:“https://eproc.pu.go.id/publik/eproc2011/semieprocplus/info_lelangprogress.asp?tid\u003d12\u0026id\u003d% 7BC0B5ED00-F369-4700-B93A-B0677B63D9EA%7D \ u0026u \ u003d7 \ u0026t \ u003d3 \ u0026d \ u003d1" , “URL”:“https://eproc.pu.go.id/publik/eproc2011/semieprocplus/info_lelangprogress。 ASP%3Ftid%3D12%26id%3D%257BC0B5ED00-F369-4700-B93A-B0677B63D9EA%257D%26U%3D7%26吨%3D3%26D%3D1" , “visibleUrl”: “eproc.pu.go.id”,” cacheUrl “:” “ ”称号“:” Informasi   Proyek“,”titleNoFormatting“:”Informasi Proyek“,”content“:”Jl。巴   \ u003cb \ u003eKucing \ u003c / b \ u003e Gg。 Tuah No.4 Tanjungpinang。 NPWP:   152742110214000.编号代理,: - 。 TGL。代理商: - 。 Nilai,:90.76。 Waktu,:270 Hari。 Nilai kontrak,:   RP “},{” GsearchResultClass “:” GwebSearch “ ”unescapedUrl“:” https://eproc.pu.go.id/publik/dinaspu/kegiatan/info_paket.asp?id\u003d%7B4BD47F74-233B-4D49 -BB60-4229023668C6%7D “ ”URL“:” https://eproc.pu.go.id/publik/dinaspu/kegiatan/info_paket.asp%3Fid%3D%257B4BD47F74-233B-4D49-BB60-4229023668C6%257D “ ”visibleUrl“: ”eproc.pu.go.id“, ”cacheUrl“: ”“, ”称号“:” Informasi   Proyek“,”titleNoFormatting“:”Informasi Proyek“,”content“:”2010年4月9日   \ u003cb \ u003e ... \ u003c / b \ u003e Sub Kegiatan,:PEMBANGUNAN JALAN。   Paket,:Peningkatan jalan s.d hotmix Jl。   \ u003cb \ u003eKucing \ u003c / b \ u003e Kel.Purwosari。 Rupiah Murni:   14.49亿   \ u003cb \ u003e ... \ u003c / B \ u003e “}],” 光标 “:{” RESULTCOUNT “:” 10" , “页”:[{ “开始”: “0”, “标签”:1} ,{ “开始”: “4”, “标签”:2},{ “开始”: “8”, “标签”:3}], “estimatedResultCount”: “10”, “currentPageIndex”:2“,moreResultsUrl “:” http://www.google.com/search?oe\u003dutf8\u0026ie\u003dutf8\u0026source\u003duds\u0026start\u003d12\u0026hl\u003den\u0026q\u003d+kucing+site:eproc.pu.go.id ”, “searchResultTime”: “0.05”}},   200,null,200)

2 个答案:

答案 0 :(得分:1)

如果你想从字符串中提取值并在vb.net中生成通用列表,你可以试试

Private Function Fetch_Items(Text As String) As List(Of Generic_List)
Dim pattern As String = "\((?<value>(.)*?\))"
Dim _lst As New List(Of Generic_List)()
Dim VDMatch As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(Text, pattern)
While VDMatch.Success
    _lst.Add(VDMatch.Groups("value").Value)
    VDMatch = VDMatch.NextMatch()
End While

Return _lst
End Function

此函数将提取包含在()内的所有字符串并生成通用列表。

答案 1 :(得分:1)

因此,在搜索类似问题时,我遇到了这篇文章。我的任务是解析树节点的完整路径(表示为“root \ child \ grandchild \ greatgrandchild ... \ currentNode”以选择要使用的祖先级别。虽然irfanmcsd的答案​​很优雅,但我是我很难设置正确的斜线设置模式(并且真的希望在正则表达式上变得更好。)

以下是我针对特定问题的解决方案:

    Dim exp As New Regex("\\", RegexOptions.IgnoreCase)
    Dim ancestors() As String

    ancestors = exp.Split(calledFromTreeNode.FullPath)

我现在有一系列值来完成我需要的东西。

虽然这不是同一个问题,但是irfanmcsd的解决方案帮助推动了我自己的问题。现在我只需要更好地理解模式!