zoukankan      html  css  js  c++  java
  • 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
    **/
    

      

  • 相关阅读:
    OutputCache 缓存key的创建 CreateOutputCachedItemKey
    Asp.net Web Api源码调试
    asp.net mvc源码分析DefaultModelBinder 自定义的普通数据类型的绑定和验证
    Asp.net web Api源码分析HttpParameterBinding
    Asp.net web Api源码分析HttpRequestMessage的创建
    asp.net mvc源码分析ActionResult篇 RazorView.RenderView
    Asp.Net MVC 项目预编译 View
    Asp.net Web.config文件读取路径你真的清楚吗?
    asp.net 动态创建TextBox控件 如何加载状态信息
    asp.net mvc源码分析BeginForm方法 和ClientValidationEnabled 属性
  • 原文地址:https://www.cnblogs.com/coshaho/p/6653741.html
Copyright © 2011-2022 走看看