Meine Fragen sind: Gibt es eine gute Lösung, um reguläre Ausdrücke in GWT zu verwenden?
Ich bin zum Beispiel nicht zufrieden mit der Verwendung von String.split (Regex). GWT übersetzt den Code in JS und verwendet dann den regulären Ausdruck als JS-regulären Ausdruck. Aber ich kann so etwas wie den Java Matcher oder das Java Pattern nicht verwenden. Aber ich würde diese für Gruppenabgleich benötigen.
Gibt es eine Möglichkeit oder Bibliothek?
Ich habe Jakarta Regexp ausprobiert, aber ich hatte andere Probleme, da GWT nicht alle Methoden des Java SDK emuliert, die diese Bibliothek verwendet.
Ich möchte in der Lage sein, so etwas auf der Client-Seite zu verwenden:
// Compile and use regular expression
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.find();
if (matchFound) {
// Get all groups for this match
for (int i=0; i<=matcher.groupCount(); i++) {
String groupStr = matcher.group(i);
System.out.println(groupStr);
}
}
<=
sollte nicht<
in<=matcher.getGroupCount()
?GWT 2.1 hat jetzt eine
RegExp
Klasse, die Ihr Problem lösen könnte:quelle
Diese Antwort deckt ALLE Musterübereinstimmungen ab, nicht nur eine, wie in anderen Antworten hier:
Funktion:
... und Beispielverwendung:
quelle
Wenn Sie eine reine GWT-Lösung wünschen, bin ich mir nicht sicher, ob dies möglich ist. Wenn Sie jedoch bereit sind, JSNI zu verwenden, können Sie das RegExp-Objekt von JavaScript verwenden, um die übereinstimmenden Gruppen und alle abzurufen. Sie müssen JSNI für GWT und JavaScript RegExp lernen.
quelle
Die GWTx-Bibliothek scheint eine Emulation von java.util.regex.Pattern und Freunden bereitzustellen. Es sieht nicht vollständig aus (insbesondere Matcher), könnte aber ein guter Anfang sein.
Die Technik, mit der sie ihre eigenen Implementierungen von Java-Klassen für die Clientseite einbinden, ist die
<super-source>
Deklaration im Modul XML. Es wird in GWT-Dokumenten, Beschreibung des XML-Formatmoduls unter "Überschreiben einer Paketimplementierung mit einer anderen" erwähnt. Standard JRE-übersetzbare Klassen in GWT werden auf die gleiche Weise emuliert.quelle