我必须创建一个正则表达式来检查字符串是否只包含数字,字母和除\ > <
之外的其他符号。我能够创建数字和字母。我尝试使用[^\<>]
检查字符串是否包含\ > <
个特殊字符。
但它没有用。有人可以建议如何做。
编辑:
可能是一个简单的问题,但我只是从regx开始。
答案 0 :(得分:6)
\
是正则表达式中的特殊字符,即使在字符类中也是如此。如果你想将它用作文字字符,你必须逃避它,所以正则表达式将是
[^\\<>]
如果您在Java中使用它,则必须另外转义字符串级别,因此它将显示为:
String regex = "[^\\\\<>]";
答案 1 :(得分:1)
如果字符串包含甚至一个不是反斜杠或尖括号的字符,则与[^\<>]
匹配将成功。如果您希望仅当字符串中的 no 字符是禁止字符之一时才能成功,请使用
^[^\\<>]+$
答案 2 :(得分:1)
您可以尝试使用正则表达式:
^[^\\<>]*$
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"
}