当前位置: 首页 > 知识库问答 >
问题:

java.util.regex.模式语法异常:索引0附近的未关闭字符类

游乐池
2023-03-14

我正在尝试替换字符串中的所有方括号。

这是我的节目

   package com;

import java.util.ArrayList;

import org.apache.commons.lang3.StringUtils;
import org.json.JSONException;

public class Teste {

    /**
     * @param args
     * @throws JSONException 
     */
    public static void main(String[] args) throws JSONException {


        String str = "[Fountain#Apple#Big(7)]";

        str.replaceAll("[", "").replace("]", "");

        System.out.println(str);

    }

}

但我正在

Exception in thread "main" 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)
    at com.Teste.main(Teste.java:19)

有谁能告诉我如何更换所有方括号吗??

共有1个答案

拓拔安邦
2023-03-14

<代码>字符串。replaceAll采用正则表达式模式,但您根本不需要正则表达式。您可以使用:

str = str.replace("[", "").replace("]", "");

或者,如果您愿意,您可以使用正则表达式,一次性替换两者:

str = str.replaceAll("[\\[\\]]", "");

这就是说“用空字符串替换集合中的任何字符(开方括号、闭方括号)。\是对集合中的方括号进行转义。

请注意,您需要使用替换(或替换所有)的结果-字符串在Java中是不可变的,因此任何像替换这样的方法都不会修改现有字符串,它们会返回对具有相关修改的新字符串的引用。

 类似资料:
  • 问题内容: 我正在尝试替换我的弦上的所有方括号。 这是我的程序 但是我越来越 有人可以告诉我如何更换所有方括号吗? 问题答案: 采用正则表达式模式,但是您根本不需要正则表达式。您可以使用: 或者,您 也可以根据需要 使用正则表达式,一次性替换两者: 这就是说“用空字符串替换集合中的任何字符(开方括号,闭方括号)。这是为了使集合中的方括号转义。 请注意,您需要使用(或)的结果-字符串在Java中是不

  • 编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答问题。 一般来说,我是一名新程序员,如果这个问题有一定的基础,请原谅我。 该程序的目标是简单地计算“最佳体重”,并在运行时在第35行的a和b字符串比较中不断抛出异常。我试图删除逻辑运算符,但这似乎仍然不是问题所在。我错在哪里?

  • 我正在用java编写正则表达式,但在运行程序时出错。 我想让我的正则表达式与这些示例值匹配。 我用在线regex助手尝试了它,我的regex实际上工作得很好。但当我在中运行程序时,会出现以下错误: 另一个问题是,如何格式化正则表达式,以便也可以将其与此字符串匹配? 谢谢 [编辑] 你能帮我回答这部分问题吗? 另一个问题是,如何格式化正则表达式,以便也可以将其与此字符串匹配? MyKey="ID I

  • 这是我在专有名词周围查找相邻单词的代码。我收到下面提到的这段代码的错误。我尝试添加不同的排列和反斜杠和结束括号的组合,但仍然收到错误。将感谢帮助。 我得到的错误是: 线程“main”java中出现异常。util。正则表达式。PatternSyntaxException: 索引44附近的未关闭字符类([^\s]\s[^\s])\s[]\s([^\s]\s[^\s])\s 句子-Cyprium Min

  • 索引12附近的未闭合字符类\b]([^。(|[]))^ 上面的正则表达式工作得很好,但是它在java上不工作,我无法检测出导致它的问题是什么。 有人能帮帮我吗? 提前感谢