java正则表达式,如何在表达式中添加'['

时间:2009-11-15 00:15:11

标签: java regex special-characters

我想为使用特殊字符[]的字符串创建正则表达式。

值为"[action]"

我使用的表达式为"[\\[[\\x00-\\x7F]+\\]]"

我尝试在\\[之前添加]

但它不起作用。

任何人都可以帮助我。

3 个答案:

答案 0 :(得分:3)

您可能想要删除括号“[]”。在regexp中,它们意味着可以选择一个包含的字符

答案 1 :(得分:1)

开括号和右括号前有两个反斜杠:\\[\\]

双反斜杠计算字符串中的单个反斜杠。单个反斜杠会转义括号,以便它们不会被解释为围绕字符类。

没有用于声明字符类的括号的反斜杠:[a-z](您可以使用任何范围,而不仅仅是a到z)

Kleene star运算符匹配范围内的任意数量的字符。

public class Regexp {
    public static void main(final String... args) {
        System.out.println("[action]".matches("\\[[a-z]*\\]"));
    }
}

在我的系统上:

$ javac Regexp.java && java Regexp
true

答案 2 :(得分:0)

在方括号前面加一个反斜杠。

两个反斜杠会自行转义,因此正则表达式引擎会看到\[,其中[是一个特殊字符。