首页 > 其他 > 详细

初学正则表达式

时间:2015-12-27 15:57:15      阅读:253      评论:0      收藏:0      [点我收藏+]

 我们来先认识下正则表达式的对象:

Pattern类

Pattern p = Pattern.compile("a*b");//通过规则产生正则对象
Matcher m = p.matcher("aaaaab");// 和字符串相关联产生引擎
boolean b = m.matches();//利用引擎匹配打个比方:我们按照一定的规则组装成一台汽车对象,打开发动机盖子,我们倒入原油,然后发动引擎,这样车子就动了。
正则表达式的常用的方法:
matches():匹配整个字符串 返回boolean类型数据
 1 import java.util.regex.*;
 2 class RegexTest
 3 {
 4         public static void main(String[] args)
 5         {
 6                 String reg="a*b";
 7                 String str="b";
 8                 String str1="a";
 9                 String str2="aaaab";
10                 System.out.println(str.matches("a*b"));
11                 System.out.println(str1.matches("a*b"));
12                 System.out.println(str2.matches("a*b"));
13         }
14 }

split():切割,返回字符串数组(把不符合规则的取出,为了区分group()方法)

 

 
 
	public static void method_1()
	{
				String str="www.abc.com.cn";
				String reg="\\.";	
				String[] arr=str.split(reg);
				for(String s:arr)
				{
						System.out.println(s);

}
replaceAll()方法:

public static void method_4()
{
	String str="abckkedgghungtr";
	String reg="(.)\\1+";
	String newReg="$1";
	str=str.replaceAll(reg,newReg);
	System.out.println(str);
}

 group()方法

 

public static void method_5()
		{
				String str="wo jiu yao hui lai le ameng";	
				String reg="(\\b.{2}\\b)";
				Pattern p=Pattern.compile(reg);
				Matcher m=p.matcher(str);
				while(m.find())
				{
						System.out.println(m.group());	
				}
		}

 group()方法都是符合规则的取出

 


正则表达式的基本符号
字符类
[abc] abc(简单类)
[^abc] 任何字符,除了 abc(否定)
[a-zA-Z] azAZ,两头的字母包括在内(范围)
[a-d[m-p]] admp[a-dm-p](并集)
[a-z&&[def]] def(交集)
[a-z&&[^bc]] az,除了 bc[ad-z](减去)
[a-z&&[^m-p]] az,而非 mp[a-lq-z](减去)
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾


Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n
X{n,} X,至少 n
X{n,m} X,至少 n 次,但是不超过 m

初学正则表达式

原文:http://www.cnblogs.com/theones2015/p/5080070.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!