搜索字符串的正则表达式是什么"%5B%7E%5D"?

时间:2014-03-28 16:55:56

标签: java regex

在Java中,我想查看字符串是否包含以下内容:

String link = "%5B%7E%5D/assets.jpg";
if (link.contains("%5B%7E%5D"){
   System.out.println("Yes this contains: %5B%7E%5D");
}

搜索字符串是否包含以下内容的正则表达式是什么:%5B%7E%5D?

4 个答案:

答案 0 :(得分:1)

String Str = new String("%5B%7E%5D/assets.jpg");
    System.out.print("Return Value :" );
          System.out.println(Str.matches("(.*)%5B%7E%5D(.*)"));

这将返回:

Return Value :true

答案 1 :(得分:1)

如果您正在搜索确切的字符串,则不需要正则表达式。正则表达式提取元文本以根据您自己的标准扩大搜索范围。

但是,您可以使用Pattern.quote进行文字匹配,将Matcher.matches用于开始到结束匹配,或Matcher.find在给定输入String内迭代搜索。

例如:

String input = "%5B%7E%5D";
String link = "%5B%7E%5D/assets.jpg"; 
Pattern p = Pattern.compile(Pattern.quote(input));
System.out.println(p.matcher(input).matches());
System.out.println(p.matcher(input).find());
System.out.println(p.matcher(link).matches());
System.out.println(p.matcher(link).find());

<强>输出

true
true
false
true

答案 2 :(得分:1)

if (link.contains("%5B%7E%5D")) {
}

或者可能是链接在服务器上解码,然后:

if (link.contains("[~]")) {
}

可以轻松地将这些字符串转换为(取决于charset问题):

if (link.contains("\u005B\u007E\u005D")) {
}

答案 3 :(得分:0)

据我了解,您希望匹配%2A%4A%0E/something_else之类的任何字符串?如果是,您可以尝试下一个: String s = "%5B%7E%5D/assets.jpg"; boolean b = s.matches("%..%..%.*");