正则表达式和 GWT

2022-08-31 12:08:44

我的问题是:在GWT中使用正则表达式是否有好的解决方案?

例如,我对使用String.split(regex)不满意。GWT 将代码转换为 JS,然后使用正则表达式作为 JS 正则表达式。但是我不能使用像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);
    }
} 

答案 1

使用正则表达式的相同代码可以是:

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

答案 2

GWT 2.1 现在有一个 RegExp 类,可以解决您的问题: