用于检查字符串检查的正则表达式,不包含\> <

时间:2013-09-10 14:08:31

标签: java regex

我必须创建一个正则表达式来检查字符串是否只包含数字,字母和除\ > <之外的其他符号。我能够创建数字和字母。我尝试使用[^\<>]检查字符串是否包含\ > <个特殊字符。

但它没有用。有人可以建议如何做。

编辑:

可能是一个简单的问题,但我只是从regx开始。

3 个答案:

答案 0 :(得分:6)

\是正则表达式中的特殊字符,即使在字符类中也是如此。如果你想将它用作文字字符,你必须逃避它,所以正则表达式将是

[^\\<>]

如果您在Java中使用它,则必须另外转义字符串级别,因此它将显示为:

String regex = "[^\\\\<>]";

答案 1 :(得分:1)

如果字符串包含甚至一个不是反斜杠或尖括号的字符,则与[^\<>]匹配将成功。如果您希望仅当字符串中的 no 字符是禁止字符之一时才能成功,请使用

^[^\\<>]+$

答案 2 :(得分:1)

您可以尝试使用正则表达式:

^[^\\<>]*$

Regular expression visualization

e.g。

private static final Pattern REGEX_PATTERN = 
        Pattern.compile("^[^\\\\<>]*$");

public static void main(String[] args) {
    System.out.println(
        REGEX_PATTERN.matcher("Hello World!").matches()
    );  // prints "true"
    System.out.println(
        REGEX_PATTERN.matcher("<script ...></script>").matches()
    );  // prints "false"
}