使用Java模式检查是否存在否定列表字符

使用Java模式检查是否存在否定列表字符,java,regex,pattern-matching,user-input,Java,Regex,Pattern Matching,User Input,我似乎被发现在运行时使用了不正确的表达式。导致心脏灼伤的线是 String expression = "$+!*'(),{}|\^[]`<>#%";/?:&="; String expression=“$+!*”(),{}&="; 这是我的密码 public static boolean hasBlackListCharacters(CharSequence strString) { boolean hasBlackListedChar = false;

我似乎被发现在运行时使用了不正确的表达式。导致心脏灼伤的线是

String expression = "$+!*'(),{}|\^[]`<>#%";/?:&=";
String expression=“$+!*”(),{}&=";
这是我的密码

public static boolean hasBlackListCharacters(CharSequence strString)
{
    boolean hasBlackListedChar = false;

    String expression = "$+!*'(),{}|\^[]`<>#%";/?:&=";
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(strString);
    if (matcher.matches()) {
        hasBlackListedChar = true;
    }


    return hasBlackListedChar;
}
公共静态布尔hasBlackListCharacters(CharSequence strString)
{
布尔hasBlackListedChar=false;
字符串表达式=“$+!*”(),{}\^[]`\\\%”;/?:&=“;
Pattern=Pattern.compile(表达式,Pattern.CASE不区分大小写);
Matcher Matcher=pattern.Matcher(strString);
if(matcher.matches()){
hasBlackListedChar=true;
}
返回hasBlackListedChar;
}
输入不应与以下任何字符匹配

$+!*'(),{}|\^[]`<>#%";/?:&=
$+!*'(),{}|\^[]`#%";/?:&=
输入字符串

<img src = "http://evil.com">

必须搜索
CharSequence
以查找是否存在这些字符中的任何一个..并相应地返回或false。

private static Pattern Pattern=Pattern.compile(“[$+!*”(),{}}124;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[\]`\\\\\%\/?:&=]”;
private static Pattern pattern = Pattern.compile("[$+!*'(),{}|\\\\^\\[\\]`<>#%\";/?:&=]");

public static boolean hasBlackListCharacters(String strString) {
    return pattern.matcher(strString).find();
}
公共静态布尔hasBlackListCharacters(字符串strString){ 返回pattern.matcher(strString.find(); }
private static Pattern Pattern=Pattern.compile(“[$+!*”(),{}\\\\\\\\\\\\\[\\]`\\\\%\'”/?:&=]);
公共静态布尔hasBlackListCharacters(字符串strString){
返回pattern.matcher(strString.find();
}
字符串表达式=“$+!*”(),\\{\\}|\\\\^\\[\\]`#%\";/?:&=";
您需要在正则表达式中两次转义反斜杠,使其成为正则表达式转义,而不是java excape \变成\\

转义大括号以避免索引异常附近的非法重复

避开方括号

你也可以看看, 此类具有强大的转义功能。

String expression=“$+!*”(),\\{\\\\\\\\^\\[\\]`\\\\\\\\\\\\\\\\\\\\\\”/?:&=";
您需要在正则表达式中两次转义反斜杠,使其成为正则表达式转义,而不是java excape \变成\\

转义大括号以避免索引异常附近的非法重复

避开方括号

你也可以看看,
该类具有强大的转义功能。

您尝试了什么?
xxxxxxxxx
似乎是您必须尝试过的内容的占位符。我强烈建议使用此在线工具开发您自己的正则表达式,并使用许多输入对其进行测试。$+!*'(),{}\^[]`\%“/?:&=我想这有点不对劲。。转义字符不正确?此正则表达式:
[^8]
将接受除
8
@multi-threader之外的任何内容-已签出regexplanet。没有快乐。没有收到您对[^8]的评论您尝试了什么
xxxxxxxxx
似乎是您必须尝试过的东西的占位符。我强烈建议使用此在线工具开发您自己的正则表达式,并使用许多输入对其进行测试。$+!*'(),{}{124;\^[]`{35;%“/?:&=我想这有点问题。不正确的转义字符?这个正则表达式:
[^8]
将接受除
8
@multi-threader之外的任何内容-签出了regexplanet。不高兴。没有收到你对[^8]的评论谢谢你Sachin。它很有帮助谢谢你Sachin。它很有帮助
String expression = "$+!*'(),\\{\\}|\\\\^\\[\\]`<>#%\";/?:&=";