1、regex语法:
编辑工具 : regexRuddy
e-mail: ([\w-]+)@([\w-]+)(\.[a-zA-Z]{2,5}){1,2}
电话: (0\d{2,3}-\d{7,8})|(1[34568]\d{9})
去除首尾空格: String str = " abc ".replaceAll("(^\\s+)|(\\s+$)","");
零宽断言:(?=pattern) 正向肯定预查,非获取匹配,可将大量有规则的数据提取出来
2、Java中使用正则表达式
public class re { public static void main(String[] args) { Pattern p = Pattern.compile("(\\d{4})([a-z]{2})"); Matcher m = p.matcher("abcdefgh1234fdd5678dfadf"); //System.out.println(m.matches()); //匹配整个目标字符串 //System.out.println(m.find()); List<String> list = new ArrayList<String>(); while(m.find()){ System.out.println(m.group(0)); System.out.println(m.group(1)); System.out.println(m.group(2)); list.add(m.group()); } String [] str = "abcd2efgh4".split("\\d+"); for(int i=0;i<str.length;i++) System.out.println(str[i]); } }
3、javascript中使用正则表达式
<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script> String.prototype.trim = function(){ //去除空格 return this.replace(/(^\s+)|(\s+$)/g,""); } function testRegex(){ //var re = /\d{4}/g; //var r2 = new RegEx("\\d{4}","g"); var re = new RegExp("(\\d{2})([a-z]{2})","ig"); //var result = re.exec("33dd44ff2fd888oo"); //alert(result); alert(re.test("3333ff2ddd")); } function check(testform){ var username = testform.username.value.replace(/(^\s+)|(\s+$)/g,""); var flag = true; document.getElementById("usermsg").innerHTML=""; if(username.length==0){ document.getElementById("usermsg").innerHTML="用户名不能为空!"; flag = false; }else{ if(!(/^\w+$/.test(username))){ document.getElementById("usermsg").innerHTML="用户名必须是:字母、数字、下划线!"; flag = false; } } return flag ; } </script> </head> <body> <input type="button" value="测试正则" οnclick="testRegex();" /> <form action="testform.jsp" name="testform" οnsubmit="return check(this);"> 用户名:<input type="text" name="username" /><span id="usermsg"></span><br /> <input type=submit value=提交 /> </form> </body>