只能输入正数: ^([0-9]*)$
只允许输入正整数(不包括0): ^[0-9]*[1-9][0-9]*$
只允许输入正数,负数,小数的正则表达式
: ^(\-|\+)?\d+(\.\d+)?$
正则表达式 允许输入汉字,数字,标点符号!最多 输入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§ionID=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));
}
---------------------------------------------------------------------