java正则表达式小练习

        正则表达式像太极拳一样可谓是“易学难精”,名字听起来也比较唬人,呵呵。希望朋友们多多交流,以下代码是我写的小例子,非常简单,供入门的朋友们学习,欢迎大家指教。

    

package com.cn;
import java.util.Date;
import java.util.regex.*;
public class RegexTest {
  public static void main(String args[]){
	  int i=1;
	  //1.匹配用一个空格分隔的任意一对单词
	  Pattern p=Pattern.compile("[a-zA-Z]* [a-zA-Z]*");
	  Matcher m=p.matcher("abc defdsafa");
	  System.out.println(i+++""+m.matches());
	  
	  //2.匹配合法的java标识符
	  p=Pattern.compile("_|[a-zA-Z]{0,1}([a-zA-Z0-9_])*");
	  m=p.matcher("__iwrj");
	  System.out.println(i+++""+m.matches());
	  
	  /*
	   *3. 假设街道地址使用这样的格式 1180 Brod Driver.
	   * 要求能够匹配多个单词的街道名字,如1234 De Hi Good
	   * 
	   */
	  p=Pattern.compile("[\\d]{4}( [A-Z]{1}[a-z]*)*");
	  m=p.matcher("1180 Brod Driver Driver");
	  System.out.println(i+""+m.matches());
	  m=p.matcher("1234 hello");
	  /*
	   * 注意find与matches()的区别  
	   * 调用find方法,只执行尽量匹配
	   * 而调用matches方法,则执行严格的匹配  1234 hello显然是不匹配的(严格匹配模式下)
	   * 所以  在这个例子中  调用find()方法返回的是true
	   * 而调用matches()方法返回的是false
	   */
	  System.out.println(i+""+m.find());
	  System.out.println(i+++""+m.matches());
	  
	  /*
	   *4. 匹配简单的以www.开头,以.com结尾的Web域名
	   * 注意:\\.表示.而\\表示\
	   */
	  p=Pattern.compile("^www\\.[a-zA-Z0-9]*\\.com$");
	  m=p.matcher("www.iteye.com");
	  System.out.println(i+++""+m.matches());
	  
	  /*
	   * 5.匹配所有合法的电子邮件的地址
	   * 如[email protected]
	   * 
	   */
	  p=Pattern.compile("\\w+@\\w+\\.com$");
	  m=p.matcher("[email protected]");
	  System.out.println(i+++""+m.matches());
	  
	  
	  /*
	   * 6.用正则表达式表示1-12月
	   * 
	   */
	  p=Pattern.compile("(0?[0-9])|1[012]");
	  m=p.matcher("8");
	  System.out.println(i+++""+m.matches());
	  
	  /*
	   * 7.用正则表达式表示15位的信用卡号,卡号格式为4-6-5
	   * 
	   */
	  p=Pattern.compile("[\\d]{4}-[\\d]{6}-[\\d]{5}$");
	  m=p.matcher("1234-123235-09848");
	  System.out.println(i+++""+m.matches());
	  
  }
}

 

  

你可能感兴趣的:(java,Web,正则表达式)