笔试题:正则表达式(二)

在学习正则表达式的时候,朋友又给我发来了一个判断给定输入是否是合法ip地址的问题,前些天恰好从别人的面试经验里了解到这样类似的题,学习了正则表达式后,发现这样的题其实很简单啊。只需要用Pattern类和Matcher类的方法即可。先上实现代码:

public class Test1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n =100;
        while(n>0){
            String str = in.nextLine() ;
            System.out.println(isIp(str));
            n--;
        }
    }
    public static boolean isIp(String ipStr){
        String ipRegex = "^([1-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))(\\.([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))){3}$";
        Pattern pattern = Pattern.compile(ipRegex);
        Matcher matcher = pattern.matcher(ipStr);
        if(matcher.matches()){
            return true;
        }else
            return false;
    }
}

这里用到的正则表达式:

“^([1-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))(\\.([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))){3}$"

主要两部分组成,前一部分1位的1至9或者2位10至99或者3位100至199或者200至249或250至255;后一部分加上一个只有一个0的情况,这一部分出现3次。

看了些博客,总结下Pattern类和Matcher类用到的方法:

1.简介

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配争做的类库包。它包含两个类:Pattern和Matcher。

Pattern类的作用在编译正则表达式后创建一个匹配模式;

Matcher类使用Pattern实例提供的模式信息对正则表示式进行匹配。

2.方法

Pattern compile(String regex)

Pattern的构造函数是私有的,不可以直接创建,所以通过静态方法compile(String regex)方法来创建,将给定的正则表达式编译并赋予给Pattern类。

pattern.matcher(CharSequence input)

对指定输入的字符串创建一个Matcher对象

boolean matches()

尝试对整个目标字符展开匹配检测,只有整个目标字符串匹配时才返回真值。

 

还有一些其他的方法,参考博客:https://www.cnblogs.com/playing/archive/2011/03/15/1984943.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值