Les Snippets

Connexion

Compter le nombre de sous-chaîne

Niveau requis pour utiliser/comprendre cette source : 2 ( Initié )
Créé le 04/06/2007 16:39:13 et initié par coucou747 [Liste]
Date de mise à jour : 04/06/2007 17:14:47
Vue : 18641
Catégorie(s) : Chaîne de caractères
Langages dispo pour ce code :
- mySQL
- VB6, VBA
- PHP 3, PHP 4, PHP 5
- Javascript



Langage : mySQL
Date ajout : 04/06/2007
Posté par coucou747 [Liste]
CREATE FUNCTION substringcount( string1 TEXT, string2 TEXT ) RETURNS REAL
DETERMINISTIC RETURN (LENGTH(string1)-LENGTH(REPLACE(string1, string2, "")))/LENGTH(string2);

Remarque :
SELECT substringcount("ab abc", "ab");

si vous voulez, ca remplace la sous chaine par du vide, dans la chaine principale, et ca compte la difference du nombre de caracteres, avant et apres... en divisant le tout par la taille de la sous chaine, vous comptez le nombre de sous chaines remplaces
Langage : VB6 , VBA
Date ajout : 10/06/2007
Posté par mortalino [Liste]
Option Explicit

Public Function NbInStr(ByVal MyStart As Long, ByVal MyWord As String, ByVal MyString As String) As Long
    If MyStart < 1 Or LenB(MyWord) < 2 Or LenB(MyString) < 2 Then Exit Function
    
Dim i As Long, MyCounter As Long

    MyCounter = 0
    For i = MyStart * 2 - 1 To LenB(MyString) Step 2
        If MidB(MyString, i, LenB(MyWord)) = MyWord Then MyCounter = MyCounter + 1
    Next i
    
    NbInStr = MyCounter
End Function

Sub Exemple_Utilisation()
    Debug.Print NbInStr(1, "mot", "Compte le nombre de mot 'mot' dans cette chaine")
    ' retournera 2
End Sub 
Remarque :
Existe déjà ici :
http://www.codyx.org/snippet_compter-nombre-occurrence-chaine-dans-autre_158.aspx
Langage : PHP 3 , PHP 4 , PHP 5
Date ajout : 10/06/2007
Posté par coucou747 [Liste]
substr_count($grossechaine, $souschaine);
Langage : Javascript
Date ajout : 25/08/2007
Posté par Arto_8000 [Liste]
// Version avec la casse //
function substr_count (str, seek)
{
    return ((str.length - str.split(seek).join("").length) / seek.length);
}
// Exemples :
substr_count("aBBBB","ab"); // 0
substr_count("ab abcdef"); // 2
// Version sans la casse //
function substr_count (str, seek)
{
    return ((str.length - str.replace(new RegExp(seek,"gi"),"").length) / seek.length);
}
// Exemples :
substr_count("aBBBB","ab"); // 1
substr_count("ab abcdef"); // 2

Snippets en rapport avec : Compter, Replace, Substringcount, Sous, Chaines



Codes sources en rapport avec : Compter, Replace, Substringcount, Sous, Chaines

{PHP} COMPARAISON DE 2 CHAINES , ET RETOUR DU POURCENTAGE DE RESSEMBLANCE
bonjour cette fonction tres simple sert a comparer 2 chaines de caracteres, et de connaitre leur ...

{C / C++ / C++.NET} COMPTER LE NOMBRE DE PAGES D'UN FICHIER PDF
Ce petit code source permet de compter le nombre de pages dans un fichier PDF. Fonctionne au moins ...

{Visual Basic, VB6, VB.NET, VB 2005} SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACTÈRES "HH:MM:SS,MMM"
Petite macro word servant à incrémenter toutes les chaînes de caractères codant le temps dans un sou...

{Javascript / DHTML} MACHINE À SOUS
Voici une petite machine à sous que j'ai faite aujourd'hui. Elle n'est pas terminée mais je pense qu...

{PHP} CRÉER UN PARSEUR LL
Les parseurs, vous les utilisez mais vous ne savez pas forcement comment ils marchent. Voici un e...

{PHP} ENCODAGE UTF16
PHP supporte mal les caractères supérieurs à 1 octets. J'ai trouvé plusieurs sources (ou fonctions ...

{Visual Basic, VB6, VB.NET, VB 2005} ALTERNATIVE À LA FUNCTION VBA OU VB REPLACE (JUSQU'À 10 FOIS PLUS VITE, SANS API)
J'ai trouvé cette fonction dans le forum Bigsource. Comme je n'ai pas trouvé d'équivalent si rapide ...

{Delphi} TABLEAU DE BOUTONS DYNAMIQUES (AGENDA)
L'agenda par lui même n'a que très peu d'intérêt et ne constitue pas le but de cet envoi. Le thème ...

{Python} FONCTION COMPTER LE NOMBRE DE LIGNE
Bonjour, ma première fonction que je poste ... Pour les gros débutant (dont je fais parti) je pense ...

{Delphi} LIBRAIRIE DE FONCTIONS DE GESTION DE SOUS-CHAINES.
Quelques fois, on aimerai avoir une sorte de "structure" de plusieurs éléments variable en taille et...