1. ホーム
  2. java

[解決済み] 正規表現とGWT

2023-06-13 09:36:51

質問

質問です。GWTで正規表現を使用するための良い解決策はありますか?

私は、例えばString.split(regex)を使うことに満足していません。GWTはコードをJSに変換し、その後、JS regexとしてregexを使用します。しかし、私はJava MatcherやJava Patternのようなものを使用することはできません。しかし、私はグループマッチングのためにこれらを必要とします。

何か可能性やライブラリはないでしょうか?

Jakarta Regexpを試しましたが、GWTがこのライブラリが使用するJava SDKのすべてのメソッドをエミュレートしないため、他の問題が発生しました。

クライアント側でこのようなものを使用できるようにしたいのですが。

// 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);
    }
} 

どのように解決するのですか?

RegExpを使った同じコードが考えられます。

// Compile and use regular expression
RegExp regExp = RegExp.compile(patternStr);
MatchResult matcher = regExp.exec(inputStr);
boolean matchFound = matcher != null; // equivalent to regExp.test(inputStr); 

if (matchFound) {
    // Get all groups for this match
    for (int i = 0; i < matcher.getGroupCount(); i++) {
        String groupStr = matcher.getGroup(i);
        System.out.println(groupStr);
    }
}