IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 定义字符串规则的简单方法:正则表达式 -> 正文阅读

[Java知识库]定义字符串规则的简单方法:正则表达式

???????

?正则表达式:

?匹配单个字符:

?匹配多个字符(需要加量词):

?正则表达式适用的方法:?


正则表达式:

正则表达式:正确规则的表达式.是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用.里面书写的规则是java给我们定的!规则字符在java.util.regex Pattern类中(之后小编会介绍到的!)在Java中可以用字符串来定义正则表达式!

相关的规则如下:

匹配单个字符:

  • String regx = "a";? ? ? ? ? ? ? ? ? ? ? ? ? 最简单的正则 匹配a这个字符
  • regx = "[a,b,c]";? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[] 是我列表中的某一个匹配上就可以
  • regx = "[a,b,c,A,B,C,0,1,2,3]";? ? ? ?同上
  • regx = "[a-z]";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 匹配a-z中的任意一个
  • regx = "[A-Z]";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?匹配A-Z中的任意一个
  • regx = "[0-9]";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 匹配0-9中的任意一个? ? ? ?
  • regx = "[a-zA-Z0-9]";? ? ? ? ? ? ? ? ? ? ?匹配a-zA-Z0-9中的任意一个
  • regx = "[^0-9]";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ^取反? ? ? 匹配不是数字的??
  • regx = ".";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 匹配单个任意字符
  • regx = "..";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?匹配两个任意字符
  • regx = "\\.";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \\转义字符? ? ?\\. 只代表.本身? ?匹配"."
  • regx = "a|b";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|是或者的意思
  • regx = "\\|";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\\转义字符? ???\\|只代表|本身? ??匹配"|"
  • regx = "\\d";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\\d 和[0-9]的意思 一样
  • regx = "\\D";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\\D 和[^0-9]的意思 一样
  • regx = "\\w";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?跟[a-zA-Z_0-9]的意思一样
  • regx = "\\W";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 跟[^a-zA-Z_0-9]的意思一样
  • regx = "\\s";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 匹配空格字符
  • regx = "\\S";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?匹配不是空格

匹配多个字符(需要加量词):

  • regx = "[0-9a-zA-Z]+";? ? ? ? ? ? ? ? ? ?+表示0-9a-zA-Z可以出现 一次或多次
  • regx = "[a-z]*";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?零次或多次 ?大于等于1次 都算多次
  • regx = "[A-Z]?";? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 零次或1次
  • regx = "[0-9]{5,}";? ? ? ? ? ? ? ? ? ? ? ? ? ?至少出现5次
  • regx = "[0-9]{5,15}";? ? ? ? ? ? ? ? ? ? ? ?出现大于等于5次并且小于等于15次
  • regx = "[0-9]{11}";? ? ? ? ? ? ? ? ? ? ? ? ? 出现正好11次

例如定义手机号的规则:?

public class Test {
    public static void main(String[] args) {
        //手机号的规则
        //1. 手机号是 11位 每一位是数字字符  2. 手机号是 1 开头  3. 手机号 第二位 3 5 7 8

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入手机号:");
        String s=sc.nextLine();

        //制定规则phoneRegx
        String phoneRegx = "[1][3578][0-9]{9}";

        //[1]就是手机号是 1 开头
        //[3578]就是手机号 第二位是 3 5 7 8
        //[0-9]{9}是0-9出现9次

        
        //matches()是查看数据是否符号规则的方法
        //       输入数据  匹配 规则(正则)
        boolean b = s.matches(phoneRegx);
        if (b==false){
            System.out.println("您输入的手机号格式不正确!");
        }else {
            System.out.println("输入正确!");
        }

    }
}

再例如定义qq号的规则:?

public class ZhengZeTest {
    public static void main(String[] args) {
        
        /*需求:校验qq号码.
        1:要求必须是5 - 15 位数字
        2:0 不能开头*/

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入QQ号");
        String qqNumber = sc.nextLine();
        boolean flag = checkQQNumber(qqNumber);
        if (flag) {
            System.out.println("QQ号规则正确");
          } else {
            System.out.println("QQ号规则错误");
          }
       }

     private static boolean checkQQNumber(String qqNumber) {
         //定义规则
         String str = "[1-9][0-9]{4,14}";
         boolean b = qqNumber.matches(str);
         return b;
            }

        }

正则表达式适用的方法:?

  • String[] arr = str.split("正则规则");? ? ? ? ?根据正则来切割字符串.切割好的子字符串会放入到数组中.
  • str.replaceAll("正则规则", "字符");? ? ? ? ? 根据正则来替换,用字符替换掉满足正则规则的字符串.
  • str.matches("正则规则")? ? ? ? ? ? ? ? ? ? ? ? ? 是查看数据是否符号规则的方法(在上例中提到过)
public class ZZMethodTest {
    public static void main(String[] args) {

            String str = "我=爱=JAVA";

            //根据正则来切割字符串
            String[] arr = str.split("=");
            System.out.println(arr[0]);    //我
            System.out.println(arr[1]);    //爱
            System.out.println(arr[2]);    //JAVA


            String str2 = "我=adfadsAFfd1212爱=aasdfasdfsdfweefwefdfadsAFfd1212生活";
            String[] arr2 = str2.split("[=a-zA-Z0-9]+");
            System.out.println(arr2[0]);    //我
            System.out.println(arr2[1]);    //爱
            System.out.println(arr2[2]);    //生活

            //根据中文切割
            String[] arr3 = str2.split("[^\\u4e00-\\u9fa5]+");
            System.out.println(arr3[0]);    //我
            System.out.println(arr3[1]);    //爱
            System.out.println(arr3[2]);    //生活


        //根据正则来替换
        String s = str2.replaceAll("[\\w=]+", "");   //用空字符串替换字符串中的=字母数字组成的字符串
        System.out.println(s);              //我爱生活

        String s1 = str2.replaceAll("[^\\u4e00-\\u9fa5]+", "=");   //用=替换字符串中的不是中文的字符串
        System.out.println(s1);             //我=爱=生活

        }
    }

(小编也在努力学习更多哟!以后再慢慢分享的啦!)

希望对友友们有所帮助!!!!

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:04:09  更:2022-05-05 11:05:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:17:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码