Extraire du texte à partir d'une colonne de chaînesBonjour,
Je suis un peu novice en matière de scripts dans JMP, et j'essaie d'écrire un script qui serait capable d'extraire des nombres spécifiques d'une chaîne et de créer de nouvelles colonnes pour chacun d'eux. Chaque nombre suivrait toujours les caractères « DX » ou « DY ». Par exemple :
D113U_NTCH_CM_MESURES_CD_SEM_{2UM_X6_NTCH_CM_IMAGE}_DX7DY11SDX11SDY15_2024-12-06_18-57-42.jpg
Je voudrais extraire et créer ces colonnes :

Bien sûr, j'aimerais répéter ce processus sur une colonne entière de données. J'apprécierais tout conseil. Merci !
Automatisation et scriptsRe: Extraction de texte à partir d'une colonne de chaînesConnaissez-vous à l'avance tous les motifs possibles (DX, DY, ....) ? Est-il toujours situé au même endroit (après }_ et avant la date) ?
Re: Extraction de texte à partir d'une colonne de chaînesSi j'avais une colonne pleine de ces noms de fichiers, je ferais un Cols -> Recode, Triangle rouge en haut à gauche -> "Remplacer la chaîne", puis je saisirais "S?D[XY](\d+)" et je remplacerais par "%\1%" avec "Utiliser les expressions régulières" activé. Ensuite, vous pouvez diviser la colonne (Cols -> Utilitaires -> Texte en colonnes...") et saisir "%", ce qui vous donnera 6 nouvelles colonnes, avec le préfixe, DX, DY, SDX, SDY et le suffixe, par exemple :
| Colonne 1 2 | Colonne 1 3 | Colonne 1 4 | Colonne 1 5 | Colonne 1 6 | Colonne 1 7 |
| D113U_NTCH_CM_MESURES_CD_SEM_{2UM_X6_NTCH_CM_IMAGE}_ | 7 | 11 | 11 | 15 | _2024-12-06_18-57-42.jpg |
Vous pouvez ensuite renommer les colonnes en DX, DY, etc.
Si vos données réelles sont plus complexes, ce processus devra peut-être également être un peu plus compliqué.
Re: Extraction de texte à partir d'une colonne de chaînesBon : )
peut-être commencer par
word(8, filename,"_")
de telle sorte que cela fonctionne également pour le lot DX11A .
Re: Extraction de texte à partir d'une colonne de chaînesCela m'a aidé, merci beaucoup pour l'aide.
Voir plus...Pour extraire du texte d'une colonne de chaînes dans JMP, vous pouvez utiliser des formules ou des scripts. Les méthodes courantes incluent les expressions régulières pour la recherche de motifs ou les fonctions de sous-chaîne pour isoler un texte spécifique. La fonction **Regex()** est polyvalente pour les motifs complexes, tandis que les extractions plus simples peuvent utiliser efficacement les fonctions **Left(), Right()** ou **Substring()**. Au cours d'un semestre particulièrement difficile, je suis tombé sur
https://canadianwritings.com/ et cela s'est avéré être une bouée de sauvetage. J'avais besoin d'aide pour un essai sur la littérature moderne, et le service m'a fourni un article bien documenté et parfaitement structuré. L'écrivain a suivi mes instructions à la lettre, et le résultat final a été impressionnant. De plus, ils ont livré l'essai avant la date limite, ce qui m'a donné le temps de le relire correctement avant de le soumettre.
Re: Extraction de texte à partir d'une colonne de chaînesVoici une approche alternative.
Étant donné le tableau de données

Le script ci-dessous créera directement

Names Default To Here( 1 );
// Create and example data table
dt = New Table( "Example",
Add Rows( 1 ),
New Column( "File",
Character,
"Nominal",
Set Values(
{
"D113U_NTCH_CM_MEAS_CD_SEM_{2UM_X6_NTCH_CM_IMAGE}_DX7DY11SDX11SDY15_2024-12-06_18-57-42.jpg"
}
)
)
);
// Add the new columns to the data table
dt << New Column( "DX" );
dt << New Column( "DY" );
dt << New Column( "SDX" );
dt << New Column( "SDY" );
For Each Row(
// Separate the section of the File name into just the DX,DY,SDX,SDY part
string = Word( 1, Substr( :file, Contains( :file, "_DX" ) + 1 ), "_" );
// Change the string into a assignment statements
Substitute Into( string, "SDX", ";:SD_X=", "SDY", ";:SD_Y=", "DX", ";:D_X=", "DY", ";:D_Y=", "_", "" );
string = Substr( string, 2 ) || ";";
// Execute the assignment statements
Eval( Parse( string ) );
);