Utilisez regex pour trouver une sous-chaîne à partir d'une chaîneJ'ai une variable qui stocke la chaîne suivante et je veux trouver le texte de couleur rouge et le remplacer par < dt, colList [i] >. Je veux utiliser regex car la chaîne peut varier selon les besoins mais le modèle de chaîne serait similaire (pas complètement identique).
Chaîne:
Str = "Graph Builder(
Size( 1887, 882 ),
Show Control Panel( 0 ),
Title Text Color( "Red" ),
Graph Spacing( 2 ),
Spacing Borders( 1 ),
Variables(
X( :START_TIME ),
Y( <FONT color="#FF0000">:Sen.win.sta</FONT> ),
Group X( :NAME ),
Group X( :GROUP )
),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "TEST" )}
),
Dispatch(
{},
"START_TIME",
ScaleBox,
{Min( 1 ), Max( 2000 ),
Interval( "Numeric" ), Inc( 20 ), Minor Ticks( 0 ),
Label Row( Label Orientation( "Vertical" ) )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {3, [-4], 4, [-1]} ), Position( {-4, -1} )}
)
)
); ";Merci 
Re: utiliser regex pour trouver une sous-chaîne à partir d'une chaîneVous pouvez utiliser 'RegEx ()' mais, comme alternative, 'Eval Insert Into ()' - Serach pour cela dans 'Aide> Index de script' pour voir un exemple
FWIW, je préfère conserver les expressions en tant qu’expressions, car alors l’éditeur fournira toujours un codage couleur des mots-clés, etc. Pour voir cette approche, recherchez 'Substitute Into ()'.
Re: utiliser regex pour trouver une sous-chaîne à partir d'une chaîneMerci @ian_jmp pour aider.
Je ne sais pas comment l’approche par codage couleur fonctionnera. Aussi, je dois répéter cette tâche plusieurs fois et regex pourrait être l'approche la plus robuste. Si possible, aidez-vous à résoudre ce problème en utilisant regex (), sinon expliquez comment fonctionne le codage couleur.
MerciRe: utiliser regex pour trouver une sous-chaîne à partir d'une chaîneJe pense que vous voulez remplacer la variable Y que vous avez dans votre chaîne. Mais c'est un peu difficile à dire, car si vous regardez ci-dessus, toute la chaîne est rendue en violet en raison du logiciel utilisé pour afficher la page Web.
Alors peut-être pourriez-vous répéter exactement ce que vous devez faire, s'il vous plaît?
Re: utiliser regex pour trouver une sous-chaîne à partir d'une chaîne@ian_jmp
J'ai une variable "str" qui contient la chaîne suivante. Je veux remplacer <: Sen.Win.sta> avec < dt, colList [i] >. Je veux utiliser regex car la chaîne peut être modifiée en fonction des besoins, mais le modèle serait le même.
Graph Builder(
Size( 1887, 882 ),
Show Control Panel( 0 ),
Title Text Color( "Red" ),
Graph Spacing( 2 ),
Spacing Borders( 1 ),
Variables(
X( :START_TIME ),
Y( <FONT color="#FF0000">:Sen.win.sta</FONT> ),
Group X( :NAME ),
Group X( :GROUP )
),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "TEST" )}
),
Dispatch(
{},
"START_TIME",
ScaleBox,
{Min( 1 ), Max( 2000 ),
Interval( "Numeric" ), Inc( 20 ), Minor Ticks( 0 ),
Label Row( Label Orientation( "Vertical" ) )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {3, [-4], 4, [-1]} ), Position( {-4, -1} )}
)
)
);Re: utiliser regex pour trouver une sous-chaîne à partir d'une chaîneD'ACCORD. Si c'est l'exigence, vous pouvez faire quelque chose comme ceci:
NamesDefaultToHere(1);
// Get some data
dt = Open("$SAMPLE_DATA/Probe.jmp");
// Get some columns to loop over
yColList = dt << getColumnNames(Continuous);
// Loop over columns
for (y=1, y<=NItems(yColList), y++,
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Lot ID ), Y( yColList[y] ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
Wait(1);
Report(gb) << closeWindow;
);
Dans ce cas, la commande Générateur de graphes est une expression (non contenue dans une chaîne) et vous n'avez pas besoin de vous embêter avec 'SubstituteInto ()'.
Re: utiliser regex pour trouver une sous-chaîne à partir d'une chaîneMa dernière exigence est la même, mais pour obtenir cela à chaque fois, je dois modifier manuellement la valeur de la variable Y en (dt, ColList [i]) à chaque fois pour un nouveau tableau / nouveau type de graphique. Donc, je veux automatiser ce processus pour changer la valeur de la variable Y. Je peux utiliser n'importe quelle méthode. Je pense que regex est la meilleure méthode. Donc, c’est la raison pour laquelle je veux utiliser regex.
Mon exigence principale pour trouver et remplacer automatiquement la variable Y.
Merci @ian_jmp Re: utiliser regex pour trouver une sous-chaîne à partir d'une chaîneJ'ai déjà exprimé ma préférence pour travailler directement avec des expressions plutôt que de regrouper des chaînes et d'analyser le résultat dans une expression. Je suis sûr que la méthode décrite dans mon précédent article est facilement adaptée pour faire ce que vous voulez.
Mais, si vous voulez utiliser des expressions régulières et des chaînes, alors peut-être quelque chose comme:
txt = "The quick brown fox jumped over the lazy dog";
matchTxt = "the";
replaceTxt = "a";
newTxt = Regex(txt, matchTxt, replaceTxt, GLOBALREPLACE, IGNORE CASE );
Print(txt, newTxt);
Utilisez "Aide> Index de script" et recherchez les primitives JSl pour voir les options et les exemples.
Re: utiliser regex pour trouver une sous-chaîne à partir d'une chaîneMerci @ian_jmp
Apprécier ton aide.