Re : Rechercher et compter des sous-chaînes dans un champ de texteSi vous souhaitez utiliser Loc, vous devez trouver un autre moyen de diviser la chaîne en une liste que Words(). Avec Words(), vous n'obtiendrez pas de chaîne "pas de commentaires" dans la liste car ceux-ci seront divisés en "non" et "commentaires".
Une option serait de remplacer tous les "pas de commentaires" par des chaînes vides, puis de comparer la longueur de la chaîne d'origine et de la nouvelle et de diviser par la longueur de la chaîne de comparaison. Quelque chose comme ça pourrait fonctionner :
Names Default To Here(1);
str = "Friday, December 9, 2022 10/19/2022 9:37 AM flagged with a comment 10/21/2022 6:15PM : no comment 11/15/2022 1:03 PM 3: no comments 11/16/2022 11:06 AM 4: no comments 11/18/2022 2:49 PM : no comments 11/30/2022 3:52 PM : comments 12/09/2022 9:07 AM : no comment";
str_to_search = "no comment";
new_str = Substitute(str, str_to_search, "");
matches = (Length(str) - Length(new_str)) / Length(str_to_search);
Re : Rechercher et compter des sous-chaînes dans un champ de texteApproche intéressante.Merci.
Lorsque j'ai exécuté le script, il a renvoyé un nombre de 5. Trois (3) des cas sont "sans commentaire s " et deux (2) sont " sans commentaire ".
Vous ne savez pas si ou comment la fonction Substitute autorise le pluriel ? c'est-à-dire str_to_search = "pas de commentaire". De plus, la fonction Longueur aurait été 1 de plus pour le pluriel "pas de commentaires".
Je suis curieux de savoir s'il existe une autre approche pour valider cela?
Re : Rechercher et compter des sous-chaînes dans un champ de texteJe m'attendais à ce qu'aucun commentaire et aucun commentaire ne soient les mêmes et parce qu'aucun commentaire n'est dans les deux, le remplacement fonctionnera (pour aucun commentaire, il laissera simplement le s là). Si vous avez besoin de remplacements plus complexes, Regex serait une bonne option lors de l'utilisation de GLOBALREPLACE.
Re : Rechercher et compter des sous-chaînes dans un champ de texteJ'ai compris.J'ai vu cela dans le script en survolant les variables.Cela marche.Le seul problème est qu'il est sensible à la casse.
Je peux exécuter cela comme une formule de colonne.Ajout de 2 colonnes supplémentaires pour les types de cas et somme des colonnes par ligne.
(Length( :"comment (white space collapsed)"n ) - Length(
Substitute( :"comment (white space collapsed)"n, "no comment", "" )
)) / Length( "no comment" )
Merci.Je suis de retour aux affaires.
Acclamations
Onjaï.
Re : Rechercher et compter des sous-chaînes dans un champ de texteLe substitut vous permet d'utiliser << IGNORECASE
Names Default To Here(1);
Substitute("Apple,APPLE,apple", "apple", "orange", <<IGNORECASE></IGNORECASE>

https://www.jmp.com/support/help/en/17.0/#page/jmp/list-functions.shtml?os=win&source=application#ww2490257
Recherche et comptage de sous-chaînes dans un champ de texteLe complément JMP a fait un excellent travail en important des centaines de documents MSWord dans un tableau.
je ont une colonne intitulée "commentaire (original)" que je souhaite compter le nombre de phrases "sans commentaire".
Lorsque j'utilise la formule,
N lignes(
Loc(
Words( :"commentaire (espace blanc réduit)"n, " " ),
"commentaires"
)
)
il renvoie le nombre d'occurrences du terme "commentaires".Cependant, la fonction Loc n'acceptera pas "pas de commentaires" comme argument.
N Rows(
Loc(
Words( :"comment (white space collapsed)"n, " " ),
"comments"
)
)
JMP v17.1
Fait intéressant, la formule fonctionne correctement si la colonne de commentaire a été recodée pour réduire les espaces blancs.Pas certain de pourquoi.
Toute pensée ou aide serait appréciée !
Merci.
Accès aux données