java代码片段分析(有关正则表达式)

来源:百度知道 编辑:UC知道 时间:2024/05/27 10:04:00
public class TestMatches
{
public static void main(String[] args)
{
String[] mails =
{
"kongyeeku@163.com" ,
"kongyeeku@gmail.com",
"ligang@oneedu.cn",
"wawa@abc.xx"
};
String mailRegEx = "\\w{3,20}@\\w+\\.(com|org|cn|net|gov)";
Pattern mailPattern = Pattern.compile(mailRegEx);
Matcher matcher = null;
for (String mail : mails)
{
if (matcher == null)
{
matcher = mailPattern.matcher(mail);
}
else
{
matcher.reset(mail);
}
if (matcher.matches())
{
System.out.println(mail + "是一个有效的邮件地址!");
}
else
{
System.out.println(mail + "不是一个有效的邮件地址!");
}
}
}
}

此程序用来判断给定的字符串是不是有效的电子邮件!
疑惑处:正则表达式\\w{3,20}@\\w+\\.(com|org

正则表达式里"\"要用"\\"表示,不用知道为什么,只要记住就行
所以"\w"得写成"\\w", "."在java里应该是"\.",所以在正则里就是
"\\."

public static void main(String[] args){
String str = "\nss";
System.out.println(str);
}
运行这段代码在java类中
相信你能明白了
\ 这个字符在java中是转义字符
所以,要使用正则表达式 \w 的时候,必须加一个转义字符\

在java里 \\ 表示 \,因为第一个\表转义字,如\t表示制表符(这里的\无实际意义就表示和t构成一个制表符),所以单独的\在java里是没意义的,只能用\\来表示一个\了~~

\\就是指\就像你要输出“\t”直接System.out.println("\n");是不行的,你要写成"\\t"才能实现