我的问题是:在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);
}
}
Run Code Online (Sandbox Code Playgroud) 我实现了Pattern类,如下所示:http: //www.java2s.com/Code/Java/GWT/ImplementjavautilregexPatternwithJavascriptRegExpobject.htm
我想使用以下正则表达式来匹配我的字符串中的网址:
(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?
Run Code Online (Sandbox Code Playgroud)
不幸的是,Java编译器当然无法解析该字符串,因为它不使用有效的转义序列(因为上面在技术上是JavaScript的url模式,而不是Java)
在一天结束时,我正在寻找一个正则表达式模式,它将在Java中编译并在JavaScript中正确执行.