2016-12-27 116 views
1

我有这样的正则表达式代码。正则表达式和反斜杠

public class Main { 

public static void main(String[] args) { 
System.out.println(validateAddress("Test C\O good:product")); 
} 

public static boolean validateAddress(String address) { 
return address.matches("^[a-zA-Z0-9~`[email protected]#$%^&*()_+={|}:;'<,>? -/\"\t\n\\[\\] .]*$"); 
} 
} 

当我运行这个我得到假,因为我的表达式不接受\字符。我试图包括\但失败。

请问如何在我的正则表达式中包含\字符进行验证?

感谢, 拉克什

+2

首先,你想尝试对' “测试C \\澳优:产品”'。其次,为了匹配反斜杠,在模式中使用''\\\\'''。最后,逃避'-'或者把它放在字符类的末尾。 –

回答

1

首先,你要尝试对"Test C\\O good:product"作为定义文字,你需要使用"\\"(两个反斜杠)字符串中的反斜杠。其次,要匹配反斜杠,请在模式中使用"\\\\"。最后,逃离-或放在角色类的最后。

Java demo

public static void main (String[] args) throws java.lang.Exception 
{ 
    System.out.println(validateAddress("Test C\\O good:product")); 
} 
public static boolean validateAddress(String address) { 
    return address.matches("^[a-zA-Z0-9~`[email protected]#$%^&*()_+={|}:;'<,>?\\\\ /\"\t\n\\[\\] .-]*$"); 
} 
+0

谢谢。这帮助了我。 –

相关问题