• java正则表达式使用


    用正则表达式进行字符串校验,截取十分方便,项目开发中灵活的使用正则表达式能让你的代码简洁优雅并且不易出错。在实际的应用中,掌握以下几点知识就可以应付绝大多数的开发场景了。

    1、 字符串开始结束匹配:^$。

    ^abc$完全匹配字符串abc。

    2、 特定类型字符匹配:数字d,数字字母下划线w,空格s,任意字符.。

    3、 重复匹配:重复0次或1次?,重复1次及以上+,重复0次及以上*,重复m到n次{m,n},重复m次以上{m,}。

    d+表示有一个或多个数字组成的字符串,比如0,10,110。

    4、 单个字符或[],|。

    [ab]表示a或b,a|b表示a或b。

    5、 字符串或(|)。

    (ab|bc)表示ab或者bc。

    6、 非[^]。

    [^a]表示不是a的一个字符;[^ab]表示不是a且不是b的一个字符;[^ab]+表示一个或多个字符,且每个字符都不是a或b。

    Java中,String.matches(regex)进行字符串正则表达式校验;String.replaceAll()进行正则表达式替换;Pattern,Matcher则可以进行正则表达式匹配,查找,替换等一系列操作。下面是代码实例:

    package com.coshaho.learn.reg;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class RegexTest 
    {
    	public static void main(String[] args)
    	{
    		// 重复
    		String regex = "^\s*\d+{1,3}\w+ .?$";
    		String str = "  110hkx_ @";
    		System.out.println(str.matches(regex));
    		
    		// 字符或
    		regex = "^[abc]$"; // 等价于^a|b|c$
    		str = "b";
    		System.out.println(str.matches(regex));
    		
    		// 字符串或
    		regex = "^(ab|cd)$";
    		str = "ab";
    		System.out.println(str.matches(regex));
    		
    		// 非
    		regex = "^[^abc]$";
    		str = "d";
    		System.out.println(str.matches(regex));
    		
    		regex = "\[([^\[\]]+)\]\.\[([^\[\]]+)\]";
    		str = "[device].[cpu] + [interface].[tranffic] >= 2";
    		Pattern pattern = Pattern.compile(regex);
    		Matcher matcher = pattern.matcher(str);
    		
    		while(matcher.find())
    		{
    			System.out.println(matcher.group());
    			if(2 == matcher.groupCount())
    			{
    				System.out.println(matcher.group(1));
    				System.out.println(matcher.group(2));
    			}
    		}
    		
    		regex = "\d+";
    		str = "abc123def456hijk789xyz";
    		System.out.println(str.replaceAll(regex, " "));
    	}
    }
    
    
    /**
    输出值
    true
    true
    true
    true
    [device].[cpu]
    device
    cpu
    [interface].[tranffic]
    interface
    tranffic
    abc def hijk xyz
    **/
    

      

  • 相关阅读:
    docker 安装es
    Redis 和 Zookeeper 到底谁更牛?
    Redisson 看门狗
    记一次线上服务CPU 100%的处理过程
    必须了解的mysql三大日志-binlog、redo log和undo log
    python学习笔记 -- reduce合并减少
    Python学习笔记 -- 列表2: 遍历:嵌套列表, 将其中同位置的元素组成新的列表
    python学习笔记 -- filter() 过滤符合条件的可迭代序列
    python学习笔记 -- map() 操作可迭代序列
    python学习笔记
  • 原文地址:https://www.cnblogs.com/coshaho/p/6653741.html
Copyright © 2020-2023  润新知