作为日常的复习记录,希望能够对初学java的朋友提供一些帮助。
目录- 一、java中的正则表达式
- 二、实践一下
- 1、利用正则表达式进行输入整数型验证
- 2、利用正则表达式进行输入IP地址验证
首先,我们查看一下jdk,来看看java中正则表达式的写法。
注意regex属于Pattern类。
我们可以看到在Pattern类中给出了我们正则表达式的典型用法。 如下图
啰嗦的分析一下
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
二、实践一下
1、利用正则表达式进行输入整数型验证
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class ValidateInputInt
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
Pattern p = Pattern.compile("[\+\-]?[0-9]+");//第一步:构造正则表达式
//在这里定义为空的对象,在 输入 之后再构造
Matcher m = null;//第二步:构造Matcher对象
String str = "";
boolean isValid = false;
// 判断有没有效
while (!isValid)
{
System.out.print("请输入一个十进制整数:");
//将输入读进来一行
str = sc.next();
//校验,通过则isValid = true ,否则为false
m = p.matcher(str);
isValid = m.matches();//第三步:利用matches方法进行完全匹配
}
System.out.print("你输入的十进制整数为:" + str);
}
}
2、利用正则表达式进行输入IP地址验证
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class ValidateInput02
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
Pattern p = Pattern.compile("((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)");
Matcher m = null;
String str = "";
boolean isValid = false;
while (!isValid)
{
System.out.print("请输入一个合法的IP地址:");
str = sc.next();
m = p.matcher(str);
isValid = m.matches();
}
System.out.print("你输入IP地址为:" + str);
}
}
补充关于转义字符 “” 的概念
由于java中有许多按键是没有符号表示的,比如你的’方向键’,‘回车键’等,那如何在正则表达式中表示他们。比如‘回车键’在正则表达式中为 r (u000D).所以需要转义符的概念。 转义符加d为一个正则表达式,表示所有数字及0-9。那如果我想要的就是’'应该怎么办呢?答案是继续利用 形成 即可。


![小白java200课之44[正则表达式的概念及应用] 小白java200课之44[正则表达式的概念及应用]](http://www.mshxw.com/aiimages/31/325531.png)
