正则表达式学习笔记

只能输入正数: ^([0-9]*)$

只允许输入正整数(不包括0): ^[0-9]*[1-9][0-9]*$







只允许输入正数,负数,小数的正则表达式





: ^(\-|\+)?\d+(\.\d+)?$




价格输入框的正则表达式:^(\+)?\d+(\.\d+)?$


只允许英文字母、数字、下划线:/^[\u4E00-\u9FA5a-zA-Z0-9_]{0,}$/


正则表达式 允许输入汉字,数字,标点符号!最多 输入200个字符,但不允许输入特殊字符?

 是用在那个环境下的? js的如下:
 ^([\u4e00-\u9fa5]|[0-9]|[,]|[,]){0,200}$


标点符号要添加 则如 添加 “
^([\u4e00-\u9fa5]|[0-9]|[,]|[,]|[“]){0,200}$


-----------------------------------------------------------------------

从字符串提取ipv4地址:

  Pattern p = Pattern.compile("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
            Matcher m = p.matcher(line);
            while(m.find()){
                //找到ipv4
                System.out.println("get-----" +m.group()); 
     }

--------------------------------------------------------------------

利用正则获取请求的参数

Pattern p3=Pattern.compile("(?:^|\\?|&)flowsize=(\\d*)(?:&|$)");
           Matcher m3=p3.matcher(line);
           while(m3.find()){
               //找到ipv4
               System.out.println("value-----" +m3.group()); 
   }

-------------------------------------------------------------

截取两个符号之间的内容(这里是获取=与符号之间的内容)

 param=param.substring(param.indexOf("=")+1, param.lastIndexOf("&"));

eg:

    /**
     * 提取请求里的参数,这里只限制courseId=xxxx     (xxxx只能为数字)
     */
    public String getParameter(String str,String name){
        String rex ="(?:^|\\?|&)"+name+"=(\\d*)(?:&|$)";
        Pattern p=Pattern.compile(rex);
        Matcher m=p.matcher(str);
        String param = "";
        while(m.find()){
            //找到ipv4
            param=m.group();
            //System.out.println("value-----" +m.group());
            if(StringUtils.isNotBlank(param)){
                param=param.substring(param.indexOf("=")+1, param.lastIndexOf("&"));
            }
        }
        return param;
    }

----------------------------------

提取url参数,方法二

      String rex ="(?:^|\\?|&)schoolID=([^&]*)(?:&|$)";
           Pattern p2=Pattern.compile(rex);
           Matcher m2=p2.matcher(line);
           String param = "";
           System.out.println("--------sc---------"+m2.find());
           while(m2.find()){
               //找到ipv4
               param=m2.group();
               System.out.println("value-----" +m2.group());
               if(StringUtils.isNotBlank(param)){
                   param=param.substring(param.indexOf("=")+1, param.lastIndexOf("&"));
               }
           }

------------------------------------------------------------------------------------------------------------------

正则匹配时间,[16/Sep/2014:06:01:27 +0800]  2014-9-17 15:34:45

String timeStr="";
            timeStr=line.substring(line.indexOf("[")+1, line.lastIndexOf("]"));
            String time="";
            //Pattern p = Pattern.compile("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}");
            Pattern pt = Pattern.compile("\\d{4}:\\d{2}:\\d{2}:\\d{2}");
            //Pattern pt = Pattern.compile("<.*?>/<.*?>/\\d{4}:\\d{2}:\\d{2}");
            Matcher mt = pt.matcher(timeStr);
            while(mt.find()){
                //找到时间串
                time=mt.group();
                //System.out.println("------time-------" +mt.group()); 
            }

-----------------------------------------------------------------

截取nginx日志文件的默认的日期格式,并转换格式

        String line="14.18.236.66 - - [18/Sep/2014:17:15:14 +0800] \"GET /analytics/a.html?pid=&schoolID=test&courseID=hyjg8hjv&sectionID=hyjg8hjv0.557400637306273&lectureID=hyjg8hjv0.5574006373062730.25944938557222486&userID=httirtd2&duration=0&Date=&Browser=&terminal= HTTP/1.1\" 200 1 \"http://192.168.1.113:8080/secure/course/hyjg8hjv/learn\" \"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D201 QQ/5.0.0.165\" \"-\"";


        String timeStr="";
        timeStr=line.substring(line.indexOf("[")+1, line.lastIndexOf("]"));
        String time="";
        Pattern pt = Pattern.compile("(\\d{2})/([^&]*)/\\d{4}:\\d{2}:\\d{2}:\\d{2}");
        Matcher mt = pt.matcher(timeStr);
        while(mt.find()){
            //找到时间串
            time=mt.group();
            System.out.println("------time-------" +mt.group());
            //DateUtils.parseDate(time, format);
            SimpleDateFormat sdf = new SimpleDateFormat("d/MMM/yyyy:K:m:s",Locale.ENGLISH);
            SimpleDateFormat sdfnew = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date d2 = null;
            try {
                d2 = sdf.parse(time.trim());
                } catch (ParseException e) {
                e.printStackTrace();
            }
            System.out.println(d2);
            System.out.println(sdfnew.format(d2));
        }

---------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值