Wie bekomme ich Zeichen zwischen Klammern innerhalb einer Zeichenfolge?Hallo allerseits,
Ich habe eine Zeichenfolge wie unten: „[CDO600705010] [S 88ABCV AB IT] [C23204348IT]“
Wissen Sie, wie man Zeichen zwischen öffnender und schließender Klammer erhält?
Zum Beispiel:
CDO600705010
S 88ABCV AB IT
C23204348IT
Aufrichtig
Erweiterte statistische ModellierungVerbraucher- und MarktforschungDatenzugriffBetreff: Wie bekomme ich Zeichen zwischen Klammern innerhalb einer Zeichenfolge?Ich würde hier auf jeden Fall Word() oder Words() verwenden, aber es gibt eine Zeichenmuster Ding in JMP. Es ist ziemlich schwer zu erlernen und hat im Vergleich zu einfacheren Methoden möglicherweise einen etwas eingeschränkten Nutzen (ich habe mir nicht die Mühe gemacht, es zu lernen). Skript, das von einem Skript geändert wurde, das von gefunden wurde Betreff: Text aus String extrahieren (Der Beitrag enthält auch eine Erklärung zum Matching)
Names Default To Here(1);
// see https://community.jmp.com/t5/Discussions/Extract-text-from-string/td-p/450420
txt = " [CDO600705010] [S 88ABCV A B IT] [C23204348IT] ";
sp = Pat Span("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ");
found_list = {};
Pat Match(
txt,
"[" + sp >> match + ("]") + Pat Test(
Insert Into(found_list, match);
0;
)
);
show(found_list);
// found_list = {"CDO600705010", "S 88ABCV A B IT", "C23204348IT"};
Aber der Abgleich zwischen mehreren Klammern könnte ein Ort sein, an dem ich mir vorstellen könnte, Zeichenmuster zu verwenden.
Siehe auch Skripthandbuch > Datentypen > Mustervergleich
Betreff: Wie bekomme ich Zeichen zwischen Klammern innerhalb einer Zeichenfolge?Wort() ist die Funktion, die jeder JMP-Benutzer kennen sollte.
Wenn Sie nur eine Funktion des Formeleditors erlernen, ist Word() die richtige
Betreff: Wie bekomme ich Zeichen zwischen Klammern innerhalb einer Zeichenfolge?Ich mag @txnelson 's Ansatz. Ich benutze es oft. Die Charakterfunktionen sind praktisch!
Hier ist ein anderer Ansatz, der stattdessen Regex() verwendet. Es ist keine Lösung. Es ist eine Veranschaulichung, wie Sie jede Zeichenfolge analysieren können. Ich zeige zwei Suchmuster, aber auch andere Muster sind möglich. Ich frage mich, welcher Weg schneller ist, da dies bei vielen Zeichenfolgen eine Überlegung sein könnte.
Names Default to Here( 1 );
string = { "[CDO600705010]", "[S 88ABCV A B IT]", "[C23204348IT]" };
n = N Items( string );
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "([\w\d\s]+)", "\1" );
);
);
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "[^\-[\]]+" );
);
);
Betreff: Wie bekomme ich Zeichen zwischen Klammern innerhalb einer Zeichenfolge?Toll! Schätzen Sie, dass es wie ein Wunder funktioniert
Betreff: Wie bekomme ich Zeichen zwischen Klammern innerhalb einer Zeichenfolge?s=" [CDO600705010] [S 88ABCV A B IT] [C23204348IT] ";
one = word(2,s,"[]");
show(one);
/*:
one = "CDO600705010";