2

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

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

编辑:

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

4

3 回答 3

6

\是正则表达式中的特殊字符,即使在字符类中也是如此。如果要将其用作文字字符,则必须对其进行转义,因此正则表达式为

[^\\<>]

如果你在 Java 中使用它,你必须额外转义字符串级别,所以它会显示为:

String regex = "[^\\\\<>]";
于 2013-09-10T14:11:51.083 回答
1

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

^[^\\<>]+$
于 2013-09-10T14:13:30.877 回答
1

你可以试试正则表达式:

^[^\\<>]*$

正则表达式可视化

例如

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"
}
于 2013-09-10T14:48:06.140 回答