So machen Sie Regex groß- und kleinschreibungsunabhängigHallo. Kennt jemand die beste Methode, um bei einer Regex-Suche in JSL die Groß-/Kleinschreibung außer Acht zu lassen? Ich möchte beispielsweise die Dateierweiterung aus einem Pfadnamen extrahieren und möchte nicht, dass es eine Rolle spielt, ob die Erweiterung „.csv“, „.CSV“ oder „.cSv“ lautet. Wenn ich Folgendes versuche, funktioniert es nur bei Dateinamen, deren Erweiterungen klein geschrieben sind:
filename = Regex(path, "(.+\/)*([^\/]+)\.(csv|xlsx)$", "\2")
Eine Methode besteht darin, den gesamten Pfad in Kleinbuchstaben umzuwandeln, bevor man reguläre Ausdrücke darauf anwendet, aber aus verschiedenen Gründen möchte ich das nicht tun.
filename = Regex(LowerCase(path), "(.+\/)*([^\/]+)\.(csv|xlsx)$", "\2")
Die andere Methode, die ich ausprobiert habe, besteht in der Verwendung des Modifikators „(?i)“ in der Übereinstimmungszeichenfolge, aber ich erhalte eine Fehlermeldung:
filename = Regex(path, "(?i)(.+\/)*([^\/]+)\.(csv|xlsx)$", "\2")
"Regex hat einen Quantifizierer *, +, ? oder { gefunden. an einer ungültigen Position ist das Ergebnis beim Zugriff oder bei der Auswertung von „Regex“ undefiniert.“ Ich vermute, dass dieser Modifikator in JSL nicht unterstützt wird. Irgendwelche Ideen?
Automatisierung und SkriptingBetreff: Wie kann man bei Regex die Groß-/Kleinschreibung ignorieren?Wenn Sie die Dateierweiterung extrahieren möchten, würde ich vorschlagen, die Funktionen Word(), Words(), Item() und Items() auszuprobieren, anstatt Regex zu verwenden.
Betreff: Wie kann man bei Regex die Groß-/Kleinschreibung ignorieren?Es gibt auch ein IGNORECASE-Flag in Regex in JMP, aber ich würde trotzdem vorschlagen, andere Methoden als Regex zu verwenden, wenn Sie nur den Dateinamen (oder die Erweiterung oder beides) möchten.
Names Default To Here(1);
path = Convert File Path("$SAMPLE_DATA/Big Class.jmp");
filename1 = Regex(path, "(.+\/)*([^\/]+)\.(JMP)$", "\2", IGNORECASE);
filename2 = Word(-2, path, "\/.");
filename3 = Word(-1, path, "\/");
Show(filename1, filename2, filename3);

Regex(Quelle, Muster, ( , >)
Scripting Guide > Datentypen > Reguläre Ausdrücke > Regex-Funktion
Betreff: Wie kann man bei Regex die Groß-/Kleinschreibung ignorieren?Dieser Hybridcode funktioniert
Names Default To Here( 1 );
path = "C:\users\big.cSv";
filename = "";
ext = Word( -1, path, "." );
If( Uppercase( ext ) == "CSV" | Uppercase( ext ) == "XLSX",
filename = Eval(
Parse(
"Regex(path, \!"(.+\/)*([^\/]+)\." || ext || "$\!", \!"\2\!")"
)
)
);
Show( filename );
Mein bevorzugtes JSL ist
Names Default To Here( 1 );
path = "C:\users\big.cSv";
filename = "";
ext = Word( -1, path, "." );
If( Uppercase( ext ) == "CSV" | Uppercase( ext ) == "XLSX",
filename = Word( -2, path, ".\/" )
);
Show( filename );
Betreff: Wie kann man bei Regex die Groß-/Kleinschreibung ignorieren?Danke, @jthi . Ich wusste, dass ich das schon einmal irgendwo gesehen hatte. Natürlich stand es im Skripthandbuch. Ha.