zoukankan      html  css  js  c++  java
  • Java的正则表达式

    1.      正则表达式

    正则表达式是一种特殊的字符串,一个正则表达式定义了一种字符串格式,例如可以用一个字符串定义常见手机号的格式:常见手机号是以13、15或18开头的11位数字字符串.

    1.1 正则表达式元字符的写法及含义

    见下表

     

    例如

     

    		String regex = "\d\p{Upper}\p{Alnum}";%0-9 大写 数字或字母
    		Scanner scanner = new Scanner(System.in);
    		while(true){
    			String s = scanner.next();
    			if(s.matches(regex))
    				System.out.println("匹配");
    			else
    				System.out.println("不匹配");
    		}
    输入及输出结果如下

    1Aa
    匹配
    1A2
    匹配
    1A#
    不匹配


    1.2正则表达式中方括号[]的使用

    方括号的含义如下表

     

    例如

     

    		String regex = "[b-d]";
    		Scanner scanner = new Scanner(System.in);
    		while(true){
    			String s = scanner.next();
    			if(s.matches(regex))
    				System.out.println("匹配");
    			else
    				System.out.println("不匹配");
    		}
    输入及输出结果如下

    a
    不匹配
    b
    匹配
    c
    匹配
    e
    不匹配

     

    1.3限定修饰符的用法

    限定修饰符的用法如下表

     

    例如

    		String regex = "[b-d]{1,3}";
    		Scanner scanner = new Scanner(System.in);
    		while(true){
    			String s = scanner.next();
    			if(s.matches(regex))
    				System.out.println("匹配");
    			else
    				System.out.println("不匹配");
    		}
    输入及输出结果如下

    c
    匹配
    ca
    不匹配
    cb
    匹配
    cbd
    匹配
    cbbd
    不匹配

     

    2.      字符串的替换

    字符串替换使用String类的方法s.replaceAll(String regex,String replacement).将字符串s中的所有的与regex相匹配的部分替换为replacement,regex可以为普通字符串或者正则表达式.

    例如

    		String s = new String("J.av.a大%法%好!!");
    		String regex = "\p{Punct}";//标点符号
    		System.out.println(s);
    		System.out.println(s.replaceAll(regex, ""));//去掉所有表达点
    运行结果如下
    J.av.a大%法%好!!
    Java大法好

     

    3.      字符串的拆分

    使用s.split(String regex)方法可以regex作为分隔符将s分割成几个部分.

    例如

    		String s = new String("在1840年以前的一年,1月20日是个好日子");
    		String []word = s.split("\D+");//这里需要一个 + 号,提取数字的方法
    		for(String w:word)
    			System.out.print(w+" ");
    		System.out.println();
    运行结果如下
     1840 1 20 

  • 相关阅读:
    Bellman_Ford算法详解
    数据结构实验之图论十:判断给定图是否存在合法拓扑序列(SDUT 2140)
    数据结构实验之图论九:最小生成树 (SDUT 2144)
    数据结构实验之图论七:驴友计划【迪杰斯特拉算法】(SDUT 3363)
    数据结构实验之图论六:村村通公路【Prim算法】(SDUT 3362)
    纯手工打造简单分布式爬虫(Python)
    “永恒之蓝"漏洞的紧急应对--毕业生必看
    从多项式相加看线性结构
    OD常用断点之CC断点
    打造“黑客“手机--Kali Nethunter
  • 原文地址:https://www.cnblogs.com/tensory/p/6590774.html
Copyright © 2011-2022 走看看