Java基础 使用正则表达式判断合法的 E-mail 地址
正则表达式通常被用于判断语句中,用于检查某一字符串是否满足某一格式。
使用正则表达式来判断输入的变量是否为合法的E-mail地址。
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
String address;
Scanner input=new Scanner(System.in);
System.out.println("请输入邮箱地址:"); //提示用户输入邮箱地址
address=input.nextLine();
String regex="\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}"; //定义要匹配使用的E-mail使用的正则表达式
if(address.matches(regex)) { //判断字符串变量是否与正则表达式匹配
System.out.println(address+"是合法的邮箱!");
}else {
System.out.println(address+"不是合法的邮箱!");
}
}
}
结果如图
正则表达式分析:
通常情况下E-mail的格式为“[email protected]”。总结E-mail地址的特点,可以书写正则表达式“\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}”来匹配Email地址。字符集“\\w”匹配任意字符,符号“+”表示字符可以出现1次或多次,表达式“(\\.\\w{2,3})*”表示形如“.com”格式的字符串可以出现0次或多次。而最后的表达式“\\.\\w{2,3}”用于匹配E-mail地址中的结尾字符,如“com”。
在正则表达式中可以使用方括号括起若干个字符来表示一个元字符,该元字符可以代表方括号中的任何一个字符。
[^456]:代表4、5、6之外的任何字符。
[a-r]:代表a~r中的任何一个字母。
[a-zA-Z]:可表示任意一个英文字母。
[a-e[g-z]]:代表a~e,或g~z中的任何一个字母(并运算)。
[a-o&&[def]]:代表字母d、e、f(交运算)。
[a-d&&[^bc]]:代表字母a、d(差运算)。
在正则表达式中允许使用限定修饰符来限定元字符出现的次数。
限定修饰符 | 意义 | 示例 |
---|---|---|
? | 0次或1次 | A? |
* | 0次或多次 | A* |
+ | 1次或多次 | A+ |
{n} | 正好出现n次 | A{2} |
{n,} | 至少出现n次 | A{3,} |
{n,m} | 出现n~m次 | A{2,6} |