代码:
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author : wentao * @version : 1.0 * 正则表达式来判断字符串 */ public class RegExp { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Matcher matcher = null; do { System.out.println("请输入前两位为大写字母后四位为数字的字符串"); //接收输入的字符串 String str = sc.next(); //定义正则表达式 String reg = "^[A-Z]{2}\\d{4}$"; //它接受一个标记参数flag(这里其实就是正则表达式reg),以调整匹配的行为 Pattern pattern = Pattern.compile(reg); //创建匹配给定输入与此模式的匹配器 matcher = pattern.matcher(str); //这里matcher.find()返回的布尔值 真为与给定的正则匹配 反之不匹配 } while (!matcher.find()); System.out.println("输入正确!"); } }
结果:
最后补充一下关于Pattern和Matcher类的api
Pattern
Matcher
本题涉及正则表达式的含有
^:是以谁开头 例如 ^1 就是以1开头
$:是以谁结尾 6$ 就是以6结尾
【A-Z】 :大写字母A-Z 的任意一个
{n}:有n个 【A-Z】{2} A-Z的任意大写字母有两个
\\d 是0-9的任意一个数字