Verwenden Sie Regex, um eine Unterzeichenfolge aus einer Zeichenfolge zu findenIch habe eine Variable, die folgende Zeichenfolge speichert, und ich möchte den roten Text finden und ihn durch dt, colList [i] >. Ich möchte Regex verwenden, da die Zeichenfolge je nach Anforderung variieren kann, das Zeichenfolgenmuster jedoch ähnlich ist (nicht vollständig identisch).
Zeichenfolge:
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} )}
)
)
); ";Vielen Dank 
Re: Verwenden Sie Regex, um eine Unterzeichenfolge aus einer Zeichenfolge zu findenSie können 'RegEx ()' verwenden, alternativ aber auch 'Eval Insert Into ()' - suchen Sie unter 'Help> Scripting Index' nach einem Beispiel.
FWIW, ich bevorzuge es, Ausdrücke als Ausdrücke beizubehalten, da der Editor dann weiterhin die Farbcodierung von Schlüsselwörtern usw. bereitstellt. Um diesen Ansatz zu sehen, suchen Sie nach "Substitute Into ()".
Re: Verwenden Sie Regex, um eine Unterzeichenfolge aus einer Zeichenfolge zu findenVielen Dank @ian_jmp für Hilfe.
Ich weiß nicht, wie die Farbcodierung funktioniert. Außerdem muss ich diese Aufgabe mehrmals wiederholen, und Regex ist möglicherweise der robustere Ansatz. Wenn möglich, können Sie bitte mit Hilfe von regex () helfen, das Problem zu beheben. Andernfalls erläutern Sie bitte, wie die Farbcodierung funktioniert.
Vielen DankRe: Verwenden Sie Regex, um eine Unterzeichenfolge aus einer Zeichenfolge zu findenIch denke, dass Sie die Y-Variable ersetzen möchten, die Sie in Ihrer Zeichenfolge haben. Aber es ist ein bisschen schwer zu sagen, da, wenn Sie oben schauen, die gesamte Zeichenfolge aufgrund der zum Anzeigen der Webseite verwendeten Software lila dargestellt wird.
Vielleicht könnten Sie noch einmal genau wiederholen, was Sie tun müssen, bitte.
Re: Verwenden Sie Regex, um eine Unterzeichenfolge aus einer Zeichenfolge zu finden@ian_jmp
Ich habe eine Variable "str", die die folgende Zeichenfolge enthält. Ich möchte ersetzen <: Sen.Win.sta> mit < dt, colList [i] >. Ich möchte Regex verwenden, da die Zeichenfolge je nach Anforderung geändert werden kann, das Muster jedoch identisch wäre.
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: Verwenden Sie Regex, um eine Unterzeichenfolge aus einer Zeichenfolge zu findenOK. Wenn das die Voraussetzung ist, könnten Sie so etwas tun:
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;
);
In diesem Fall ist der Graph Builder-Befehl ein Ausdruck (nicht in einer Zeichenfolge enthalten), und Sie müssen sich nicht mit 'SubstituteInto ()' befassen.
Re: Verwenden Sie Regex, um eine Unterzeichenfolge aus einer Zeichenfolge zu findenMeine letzte Anforderung ist dieselbe, aber um dies zu erhalten, muss ich den Wert in der Variablen Y jedes Mal für eine neue Tabelle / einen neuen Diagrammtyp manuell in (dt, ColList [i]) ändern. Daher möchte ich diesen Prozess automatisieren, um den Wert der Y-Variablen zu ändern. Ich kann jede Methode anwenden. Ich denke, Regex ist die beste Methode. Das ist der Grund, warum ich Regex verwenden möchte.
Meine Hauptanforderung, die Y-Variable automatisch zu finden und zu ersetzen.
Vielen Dank @ian_jmp Re: Verwenden Sie Regex, um eine Unterzeichenfolge aus einer Zeichenfolge zu findenIch habe bereits meine Präferenz zum Ausdruck gebracht, direkt mit Ausdrücken zu arbeiten, anstatt Zeichenfolgen zu mischen und das Ergebnis in einen Ausdruck zu zerlegen. Ich bin sicher, dass die Methode in meinem vorherigen Beitrag leicht angepasst werden kann, um das zu tun, was Sie wollen.
Wenn Sie jedoch reguläre Ausdrücke und Zeichenfolgen verwenden möchten, können Sie Folgendes tun:
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);
Verwenden Sie 'Hilfe> Skriptindex' und suchen Sie nach JSl-Grundelementen, um Optionen und Beispiele anzuzeigen.
Re: Verwenden Sie Regex, um eine Unterzeichenfolge aus einer Zeichenfolge zu findenVielen Dank @ian_jmp
Schätze deine Hilfe.