开发者

java regular expression , how to add '[' to expression

I want to create a regular expression for strings which uses special characters [ and ].

Value is "[action]".

Expression I am using is "[\\[[\\x00-\\x7F]+\\]]".

I tried doing it by adding \\ before [ and ].

But it doesn't work.开发者_C百科

Can any one help me with this.


You probably want to remove the enclosing brackets "[]". In regexps they mean a choice of one of the enclosed characters


Two backslashes before the open and close brackets: \\[ and \\]

The double backslash evaluates a single backslash in the string. The single backslash escapes the brackets so that they are not interpreted as surrounding a character class.

No backslashes for the brackets that do declare the character class: [a-z] (you can you any range you like, not just a to z)

The Kleene star operator matches any number of characters in the range.

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

On my system:

$ javac Regexp.java && java Regexp
true


Just stick one backslash before the square bracket.

Two backslashes escapes itself, so the regex engine sees \[, where [ is a special char.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜