• Java 正则表达式的用法和实例


    一、概述

    • 用来描述或者匹配一系列符合某个语句规则的字符

    二、单个符号

    1. 英文句点.符号:匹配单个任意字符。
    • 表达式t.o可以匹配:tnot#oteo等等。不可以匹配:tnnotoTnot正o等。
    1. 中括号[]:只有方括号里面指定的字符才参与匹配,也只能匹配单个字符。
    • 表达式:t[abcd]n 只可以匹配:tantbntcntdn。不可以匹配:thntabntn等。
    1. | 符号。相当与“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配。
    • 表达式:t(a|b|c|dd)n 只可以匹配:tantbntcntddn。不可以匹配taantntabcn等。
    1. 表示匹配次数的符号
      • 表达式:[0—9]{3}—[0-9]{2}—[0-9]{3} 的匹配格式为:999—99—999
        因为—符号在正则表达式中有特殊的含义,它表示一个范围,所以在前面加转义字符
      1. ^符号:表示否,如果用在方括号内,^表示不想匹配的字符。
      • 表达式:[^x]第一个字符不能是x
        1. S符号:非空字符
        2. s符号:空字符,只可以匹配一个空格、制表符、回车符、换页符,不可以匹配自己输入的多个空格。

    符号:空格符,与 ab相同

    三、快捷符号

    1、d表示[0—9]
    2、D表示[^0—9]
    3、w表示[0—9A—Z_a—z]
    4、W表示[^0—9A—Z_a—z]
    5、s表示[ f]
    6、S表示[^ f]

    四、常用的正则表达式

    1、Java:(([a-z]|_)(\w*)){6,20}匹配以字母或下划线开头,字母数字下划线结尾的字符串
    2、JavaScript:/^(-?)(d+)$/匹配数字
    3、JavaScript:/^w+$/匹配字母数字下划线。

    五、Java 中正则表达式的应用

    1、判断功能

    • public boolean matches(String regex)

    案例:判断录入的手机号是否为13或者18开头

    package Lemon;
    
    import java.util.Scanner;
    
    public class RegexDm {
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入手机好:");
            String s = sc.nextLine();
    
            String regex = "1[38]\d{9}";//定义手机好规则
            boolean flag = s.matches(regex);//判断功能
            System.out.println("flag:"+flag);
        }
    }

    2、分割功能

      • public String[] split(String regex)
        案例:
    package Lemon;
    
    import java.util.Scanner;
    
    public class RegexDm {
        public static void main(String[] args){
            String age = "18-24";//定义年龄范围
            String regex = "-";
            String[] strArr = age.split(regex);//分割成字符串数组
    
            int startAge = Integer.parseInt(strArr[0]);
            int endAge = Integer.parseInt(strArr[1]);
    
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您的年龄:");
            int a = sc.nextInt();
            if (a >= startAge && a <= endAge){
                System.out.println("你就是我想找的");
            }else{
                System.out.println("");
            }
        }
    }

    3、替换功能

    • public String replaceAll(String regex,String replacement)

    案例:

    package Lemon;
    
    public class RegexDm {
        public static void main(String[] args){
            String s = "12342jasfkgnas234";
            //把字符串里面的数字替换成*
            String regex = "\d";
            String ss = "*";
            String result = s.replaceAll(regex,ss);
            System.out.println(result);
        }
    }
  • 相关阅读:
    Linux 实战
    bash 环境配置及脚本
    Linux vi/vim
    Linux 正则表达式
    001 KNN分类 最邻近算法
    测序名解
    流式细胞术
    CircRNA 环化RNA
    笔记总结
    Flume
  • 原文地址:https://www.cnblogs.com/kwzblog/p/14183799.html
Copyright © 2020-2023  润新知