加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

什么是java.util.regex.Pattern.quote(String arg)的GWT替换

发布时间:2020-12-14 19:34:46 所属栏目:Java 来源:网络整理
导读:在我的应用程序中,我需要以下代码: string1.replaceAll(string2,myConstatntString) 问题是string1和string2可以包含特殊符号,如'(‘. 我想使用java.util.regex.Pattern.quote(String arg)引用string2: string1.replaceAll(Pattern.quote(string2),myConst
在我的应用程序中,我需要以下代码:

string1.replaceAll(string2,myConstatntString)

问题是string1和string2可以包含特殊符号,如'(‘.

我想使用java.util.regex.Pattern.quote(String arg)引用string2:

string1.replaceAll(Pattern.quote(string2),myConstatntString);

但java.util.regex.Pattern在GWT客户端不可用. GWT是否有任何替换Pattern.quote?

解决方法

我相信没有,因为 JavaScript没有自己的方法.你可以做的是使用String.replace()而不是String.replaceAll(),因为你根本不需要regexp.如果你这样做,你将不得不编写自己的方法.

这是在JavaScript中完成的:Is there a RegExp.escape function in Javascript?

这就是在Java中完成的方式:

public static String quote(String s) {
    int slashEIndex = s.indexOf("E");
    if (slashEIndex == -1)
        return "Q" + s + "E";

    StringBuilder sb = new StringBuilder(s.length() * 2);
    sb.append("Q");
    slashEIndex = 0;
    int current = 0;
    while ((slashEIndex = s.indexOf("E",current)) != -1) {
        sb.append(s.substring(current,slashEIndex));
        current = slashEIndex + 2;
        sb.append("E\EQ");
    }
    sb.append(s.substring(current,s.length()));
    sb.append("E");
    return sb.toString();
}

来自:http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/regex/Pattern.java

(Java 1.5中的实际实现)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读