相关疑难解决方法(0)

Java替换字符串中的所有方括号

我想从字符串中删除方括号,但我不知道如何.

String str = "[Chrissman-@1]";
str = replaceAll("\\[\\]", "");

String[] temp = str.split("-@");
System.out.println("Nickname: " + temp[0] + " | Power: " + temp[1]);
Run Code Online (Sandbox Code Playgroud)

但我的结果是:[克里斯曼| 1]方括号不会被删除.

我试着用不同的正则表达式:"\\[.*?\\]","\\[\\d+\\]" 但结果是一样的,方括号仍然附着在弦上.

编辑:

我试过了:

str.replaceAll("]", "");
str.replaceAll("[", "");
Run Code Online (Sandbox Code Playgroud)

现在我得到了:

Exception in thread "Thread-4" java.util.regex.PatternSyntaxException: Unclosed character class near index 0
[
^
    at java.util.regex.Pattern.error(Unknown Source)
    at java.util.regex.Pattern.clazz(Unknown Source)
    at java.util.regex.Pattern.sequence(Unknown Source)
    at java.util.regex.Pattern.expr(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.<init>(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.lang.String.replaceAll(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

java regex string split

62
推荐指数
5
解决办法
14万
查看次数

Eclipse说这个正则表达式中存在非法重复

if(possTape.matches("{\\(\\d+,\"[^:=;@\"\\)\\(\\{\\}\\[\\]]+\"\\)(,\\(\\d+,\"[^:=;@\"\\)\\(\\{\\}\\[\\]]+\"\\))+}"))
Run Code Online (Sandbox Code Playgroud)

但是,这是什么意思?我已经在regexpal上测试了这个正则表达式(进行了调整,因此它可以用作Java)但是我没有看到哪里有非法重复?

java regex eclipse

5
推荐指数
1
解决办法
1630
查看次数

java 正则表达式:替换 ${var}

我正在尝试替换一个字符串,例如:

Hello, my name is ${name}. I am ${age} years old.
Run Code Online (Sandbox Code Playgroud)

Hello, my name is Johannes. I am 22 years old.
Run Code Online (Sandbox Code Playgroud)

变量存储在 HashMap 中。到目前为止我的代码:

private void replace() {
        HashMap<String, String> replacements = new HashMap<String, String>();
        replacements.put("name", "Johannes");
        replacements.put("age", "22");

        String text = "Hello, my name is {name}. I am {age} years old.";
        Pattern pattern = Pattern.compile("\\{(.+?)\\}");
        Matcher matcher = pattern.matcher(text);

        StringBuilder builder = new StringBuilder();
        int i = 0;
        while (matcher.find()) {
            String replacement = replacements.get(matcher.group(1));
            builder.append(text.substring(i, matcher.start()));
            if …
Run Code Online (Sandbox Code Playgroud)

java regex

5
推荐指数
1
解决办法
3430
查看次数

标签 统计

java ×3

regex ×3

eclipse ×1

split ×1

string ×1