2012-04-03 75 views
0

我尽力配合与Java正则表达式并不能找到合适的正则表达式正则表达式匹配base64编码

我想匹配=?UTF-8?B'XXXXXXXX =?=在

= UTF-的8B UmVtaW5kZXI = =

我想:???

s.matches("=\\?utf\\-8\\?B\\?.*=\\?="); 
s.matches("=\\?utf-8\\?B\\?.*=\\?="); 
+0

如果单曲'是整个主题,你需要使用'contains()'而不是'matches()'。 – rsp 2012-04-03 19:48:22

回答

3

你确定吗?您使用的是哪个版本的Java?

我做了一个基本的测试与您的情况和它的作品...

public static void main(String[] args) { 

    String input = "=?utf-8?B?UmVtaW5kZXI=?="; 
    String input2 = "irege"; 

    String regex = "=\\?utf\\-8\\?B\\?.*=\\?="; 

    System.out.println(input.matches(regex)); 
    System.out.println(input2.matches(regex)); 

} 

控制台输出:

true 
false 
+0

在jdk上运行1.7 – 2012-04-03 19:02:25

+0

我已经用java 1.6.0_22和java 1.7.0_03测试过,结果是一样的 – MrJames 2012-04-03 19:12:53

+0

我重新测试过,因为输入变量是“mask”值而不是原始输入,但结果是一样的 – MrJames 2012-04-03 19:45:45

0

该做的:

"=\\?utf-8\\?B\\?[^=]*=\\?="