public static void main(String[] args) {
String emailIn="xxm00210xxm@163.com";
boolean check1=emailIn.matches("[0-9a-zA-Z_]+@[0-9a-zA-Z-]+[.]{1}[0-9a-zA-Z]+");
System.out.println(check1);
}
}
-----------------
编译正确!我用\w替换[0-9a-zA-Z_]后编译不通过
public class EmailV1{
public static void main(String[] args) {
String emailIn="xxm00210xxm@163.com";
boolean check1=emailIn.matches("\w+@[0-9a-zA-Z-]+[.]{1}[0-9a-zA-Z]+");
System.out.println(check1);
}
}
G:\My Documents\my项目\exercise\EmailV1.java:10: illegal escape character
boolean check1=emailIn.matches("\w+@[0-9a-zA-Z-]+[.]{1}[0-9a-zA-Z]+");
我看javadoc上写的\w A word character: [a-zA-Z_0-9] 为什么我替换就不对呢???
7 个解决方案
#1
\\w
#2
\\w 第一个“\”起什么做用的???
#3
在java中使用正则表达式,必须使用连续的两个\\进行转义
#4
编译器读到一个"\"时,它就准备把紧跟的字符转义,而"\W"没有定义,所以就报错了.
"\\"被编译器翻译成一个"\",所以在执行时可以得到"\W".
以此类推,如果你要打印"abc\\be"的话,你需要写:
System.out.println("abc\\\\be");
"\\"被编译器翻译成一个"\",所以在执行时可以得到"\W".
以此类推,如果你要打印"abc\\be"的话,你需要写:
System.out.println("abc\\\\be");
#5
字符转义,把\转换成\\
#6
楼上的说的都不错。
#7
在代码当中要写"\"就要写成"\\"第一个是相当于标点符号啦,第二个才是你需要的冬冬啦
#1
\\w
#2
\\w 第一个“\”起什么做用的???
#3
在java中使用正则表达式,必须使用连续的两个\\进行转义
#4
编译器读到一个"\"时,它就准备把紧跟的字符转义,而"\W"没有定义,所以就报错了.
"\\"被编译器翻译成一个"\",所以在执行时可以得到"\W".
以此类推,如果你要打印"abc\\be"的话,你需要写:
System.out.println("abc\\\\be");
"\\"被编译器翻译成一个"\",所以在执行时可以得到"\W".
以此类推,如果你要打印"abc\\be"的话,你需要写:
System.out.println("abc\\\\be");
#5
字符转义,把\转换成\\
#6
楼上的说的都不错。
#7
在代码当中要写"\"就要写成"\\"第一个是相当于标点符号啦,第二个才是你需要的冬冬啦