Return a specified number of substrings. ===>> Split, Join
Module Module1 ''' <summary> ''' Permet de renvoyer le nombre d'occurence d'une sous chaine dans une chaine de caractères ''' </summary> ''' La chaine de caractère ou rechercher ''' La chaine à rechercher ''' <returns>Renvoie le nombre de fois qu'à été trouve la chaine dans la chaine de caractères</returns> ''' <remarks></remarks> ''' Function CountString(Chaine As String, ChaineChercher As String, Optional RespecterCase As Boolean = False) As Long If RespecterCase Then Return (Len(Chaine) - Len(Replace(Chaine, ChaineChercher, "", , , 0))) / Len(ChaineChercher) Else Return (Len(Chaine) - Len(Replace(Chaine, ChaineChercher, "", , , 1))) / Len(ChaineChercher) End If End Function 'Exemple d'utilisation: Dim Chaine As String = " Abc def abc Ghi Def abc jkl ghi abc Mno Jkl " Dim ChaineChercher As String = "abc" Sub Main() Console.Write(CountString(Chaine, ChaineChercher, False)) Console.ReadLine() End Sub End Module
Private Function CountString(ByVal str1 As String, ByVal stringsearch As String, Optional ByVal matchcase As Boolean = False) As Integer If Not matchcase Then Return (str1.Length - str1.Replace(stringsearch, String.Empty).Length) \ stringsearch.Length Else Return (str1.ToUpper.Length - str1.ToUpper.Replace(stringsearch.ToUpper, String.Empty).Length) \ stringsearch.Length End If End Function
Private Function CountString(ByVal str1 As String, ByVal stringsearch As String, Optional ByVal matchcase As Boolean = False) As Integer 'ex abc et AbC différent If matchcase Then Return (str1.Length - str1.Replace(stringsearch, String.Empty).Length) \ stringsearch.Length Else 'abc ABC abc le meme string Return (str1.ToUpper.Length - str1.ToUpper.Replace(stringsearch.ToUpper, String.Empty).Length) \ stringsearch.Length End If End Function
Dim Chaine As String = "AbcdefabcGhiDefabcjklghiabcMnoJkl " Dim reg As New System.Text.RegularExpressions.Regex("(abc)") Dim matches As System.Text.RegularExpressions.MatchCollection = reg.Matches(Chaine) MessageBox.Show(matches.Count.ToString)