前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java开发知识之Java的正则表达式

Java开发知识之Java的正则表达式

作者头像
IBinary
发布2019-05-25 16:15:43
4100
发布2019-05-25 16:15:43
举报
文章被收录于专栏:逆向技术逆向技术

目录

  • 正则表达式
    • 一丶什么是正则表达式
      • 1.正则表达式简介
      • 2.无正则表达式判断代码
      • 3.使用正则表达式代码.
    • 二丶正则表达式API
    • 三丶正则表达式语法格式
      • 1.正则表达式语法

正则表达式

一丶什么是正则表达式

1.正则表达式简介

正则表达式就是针对字符串处理,所处的一种规范.比如我们都有在论坛上注册信息的时候. 论坛让我们输入我们的QQ 或者手机号才能注册.但是你随便输入.这就造成了论坛后台数据库保存了各种杂乱无章的数据.所以必须规范一下.比如你手机号输入错误了.提示你输入错误.

2.无正则表达式判断代码

传统的形式: Java Code为例

代码语言:javascript
复制
public static void main(String[] args) throws Exception {
        
        String str = "1842a535234"; //随便给一个手机号,表示我们论坛注册时填写的手机号.
        //手机号都是11位,判断手机号.
        boolean result = false;
        if(str == null && str.length() < 11)
            System.out.println("手机号是错误的");
        //继续判断是否手机号中有随便输入的值
        for(int i =0; i < str.length();i++) {
            char ch = str.charAt(i);
            result = Character.isDigit(ch);//判断是否是数字
            if(result == false) {
                System.out.println("错误的电话号码");
                break;
            }
        }
    }

输出结果必然是错误的电话号码 但是我们这样写只是简单的判断了一下.实际应用中判断的更多.那该怎么办. 这时候就提出了一种规则.只要你按照规则.去判断你输入的值.是否是正确还是错误.

3.使用正则表达式代码.

代码如下:

代码语言:javascript
复制
public static void main(String[] args) throws Exception {
        
        String str = "18421535234"; //随便给一个手机号,表示我们论坛注册时填写的手机号.
        boolean b = str.matches("[0-9]{11}");// 说明了这个字符串是否是0-9之间组成的数字,并且有11位.
        System.out.println("电话号码是: " + b);
    }

调用String类中的matches()方法.传入正则表达式的规则.他就会给你判断. 输出结果就是true.一行代码,解决了我们所有的烦恼. 内部实现

代码语言:javascript
复制
 public boolean matches(String regex) {
        return Pattern.matches(regex, this);
    }

可以看到,调用了Pattern类的matches方法. 继续跟踪

代码语言:javascript
复制
    public static boolean matches(String regex, CharSequence input) {
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(input);
        return m.matches();
    }

可以看到操作正则表达式一个是 pattern 一个是 Matcher 所以下面重点讲解

二丶正则表达式API

  • 1.正则表达式是一种规则.是针对字符串的. 其它语言一样都有.
  • 2.正则表达式实在 java.util.regex包中
  • 3.包中有上面两个实现类 Pattern(模式) Matcher(匹配器)
  • 4.匹配语法错误会有异常 PatternSyntaxException java中就使用 Pattern 跟 Matcher判断正则表达式的.也就是上面跟踪的代码. 1.使用Api进行正则表达式匹配. 代码例子
代码语言:javascript
复制
public static void main(String[] args) throws Exception {
        
        boolean isPhoneNumber = checkPhoneNumber("[0-9]{11}","18555555555");
        System.out.println("电话号号码是: " + isPhoneNumber);
    }
    static boolean checkPhoneNumber(String rex,String Value) {
        Pattern p = Pattern.compile(rex);
        Matcher m = p.matcher(Value);
        return m.matches();
    }

直接使用上面我们底层API即可. Pattern中最重要的方法就是compile(),我们必须传入正则表达式才可以. 而下面的匹配器则是API有很多.比如查找.等等.

三丶正则表达式语法格式

1.正则表达式语法

正则表达式最重要的就是正则表达式语法了. 不一一

编写了.给出截图

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-10-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正则表达式
    • 一丶什么是正则表达式
      • 1.正则表达式简介
      • 2.无正则表达式判断代码
      • 3.使用正则表达式代码.
    • 二丶正则表达式API
      • 三丶正则表达式语法格式
        • 1.正则表达式语法
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档