首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

求处置字符串中取得通用字符匹配的字符的思路

2012-09-14 
求处理字符串中取得通用字符匹配的字符的思路问题如下:现在有两个字符串分别是1.很雪白的*有很*火焰2.很雪

求处理字符串中取得通用字符匹配的字符的思路
问题如下:

 现在有两个字符串

 分别是 1. 很雪白的*有很*火焰

  2. 很雪白的星火有很大的火焰

 然后我要将第一个 * 通配符匹配到的 星火 ,及第二个 * 通配符匹配到 大的 

 给存入数组里面。

 

 目前小弟先将这个问题变简单一点

 我先把字符串拆得更简洁

 1. 很雪白的*

 2. 很雪白的星火

 然后一样将 * 通配符存进数组 以下是我编写的代码:

VB.NET code
Sub ppk1()        Dim 字符 As String = "很雪白的*"        Dim mach As String = "很雪白的星火"        Dim star As New ArrayList        Dim st As String = Nothing        If 字符 = "*" Then            star.Add(mach)        Else            For Each s As String In 字符                If s.Contains("*") Then                    star.Add(mach.Substring(st.Length, mach.Length - st.Length))                End If                st += s            Next        End If        Me.RichTextBox1.Text = star(0).ToString    End Sub


只有一个通配符的话 还OK 但两个通配符以上 这里我就稍微头脑卡住了 这边的思路不知该如何设计

我在想有没有办法将字符串拆成如上一样只变的只有一个通配符 和 mach 如上这样问题就比较好解 

请各位大大提供点思路给小弟 感激不尽

[解决办法]
直接找到 * 然后把 * 修改为 (.*) 再用正则匹配就能把分组弄出来嘛。
VB.NET code
Dim strMatch As String = "很雪白的*有很*"Dim strSource As String = "很雪白的星火有很大的火焰"strMatch = strMatch.Replace("*", "(.*)")Dim regex = New System.Text.RegularExpressions.Regex(strMatch)Dim matchResult = regex.Match(strSource)If matchResult.Success Then    For Each g As System.Text.RegularExpressions.Group In matchResult.Groups        If g.Index <> 0 Then            Console.WriteLine(g.Value)        End If    NextEnd IfConsole.Read() 

热点排行