java - 使用多个正则表达式检查字符串中是否存在列入黑名单的模式

标签 java regex

我有一个带值的字符串。我想检查该字符串中是否有返回列表模式。

例如:String myString="a/b[c=\"1\"=\"1\"]/c\^]

我想检查是否有以下模式

  1. "1"="1"
  2. ^

我正在使用下面的代码,它总是给出 false

         String text    = "\"1\"=\"1\" ^ for occurrences of the http:// pattern.";

        String patternString = "\"1\"=\"1\"|^";

        Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);

        Matcher matcher = pattern.matcher(text);

        boolean matches = matcher.matches();

        System.out.println("matches = " + matches)

如何用一行正则表达式检查它。

最佳答案

您的代码有几个问题:

String patternString = "\"1\"=\"1\"|^";

这里 ^ 必须转义,因为 ^ 是一个特殊的元字符,所以要这样写:

String patternString = "\"1\"=\"1\"|\\^";

然后调用:

boolean matches = matcher.matches();

应该改为:

boolean matches = matcher.find();

as matches 尝试匹配完整的输入字符串。

关于java - 使用多个正则表达式检查字符串中是否存在列入黑名单的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30384745/

相关文章:

java - 如何动态加载Spring Controller

java - 什么时候应该在 Java 中使用 throws 关键字?

ios - iOS 中的正则表达式替换

mysql - 具有与整个字符串匹配的两个替代项的替代组

javascript - 查找整个单词,如果存在则替换它

java - 谁负责 ActiveMQ 中的序列化/反序列化?

java - 为什么我们不能将整数对象转换为字符串对象?

javascript - 跳过范围内的一个字符

regex - 用新行替换特殊字符

java - Mac 上功能透明但 Windows 上不行?