码迷,mamicode.com
首页 > 编程语言 > 详细

正则表达式基础及java使用

时间:2014-08-13 18:51:07      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:正则表达式   java   正则匹配   常用语法   匹配用法   


正则表达式基础


正则表达式语法(1)
    普通字符:字母,数字,汉子,下划线以及没有特殊定义的标点符号都是“普通字符”。表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符
  • 简单的转义字符:

    \n :代表换行符

    \t :代表制表符

    \\ :代表\本身

    \^ ......  :代表匹配这字符本身


正则表达式语法(2)

  • 标准字符集合:

    能够与多种字符匹配的表达式

    注意区分大小写,大写是相反的意思

    \d :任意一个数字,0~9中的任意一个

    \w:任意一个字母或者下划线或者汉字,也就是A~Z,a~z,0~9中的任意一个

    \s :包括空格,制表符,换行符等空白符中的任意一个。

    .   :小数点可以匹配任意一个字符


正则表达式语法(3)

  • 自定义字符集合:

    [ ]方括号匹配方式,能够匹配方括号中任意一个字符

    [ab5@]: 匹配方括号中的任意一个字符

    [^abc]: 匹配除了abc以外的任意一个字符

    [f-k]: 匹配“f”-“k”之间的任意一个字符

    [^A-F0-3]: 匹配非A-F和非0-3的任意一个字符 


正则表达式语法(4)

  •     修饰匹配次数的特殊符号

    {n}: 表达式重复n次

    {m,n}: 表达式至少重复m次,最多重复n次

    {m,}: 表达式至少重复m次

    ?: 匹配表达式0次或者1次,相当于{0,1}

     + : 表达式至少出现1次,相当于{1,}

     *  : 表达式不出现或者出现任意次,相当于{0,}

     匹配次数中的贪婪模式,(匹配字符愈多愈好,默认)

     匹配次数中的非贪婪模式(匹配字符越少越好,修饰匹配次数的特殊符号后再加上一个“?“号)。例子:\d{2,4}?,这样就将模式改为非贪婪


正则表达式语法(5)

  •     字符边界(本组标记匹配的不是字符而是位置,符合某种条件的位置)

    ^: 与字符串开始的位置匹配(以一行来算)

    $: 与字符串结束的地方匹配

    \b: 匹配单词边界    //比如boy\b   则在boy右边不是边界的不匹配


在java中使用正则表达式及常用函数

public class TestRegex {
	public static void main(String []args)
	{
		//Pattern p = Pattern.compile("^\\d{4}");  //在java中的反斜杠要用两个前面一个转义,因为\d中的\做反义用
		Pattern p = Pattern.compile("(\\d{4})([a-z]{2})");
		Matcher m = p.matcher("asdfsadfsafd2342314asdfsadf2342asdfsaf");
		
		System.out.println(m.matches());		//匹配整个目标字符串
		System.out.println(m.find());			//查找字符串
		
		List<String> list = new ArrayList<String>();		//用来存储找到的group
		while(m.find())						//m.find()找到一个后就去找下一个了
		{
			System.out.println(m.group());		//group(),group(0)的作用是一样的
			System.out.println(m.group(0));
			System.out.println(m.group(1));
			System.out.println(m.group(2));		//如果写3的话会超出范围
			list.add(m.group());
		}
		
		String []str = "aa33fdf55cc".split("\\d{2}");		//按照两个整数来切分
		String str2 ="asd2dsfdfds".replaceAll("\\ds", "**");		//将ds替换掉,生成新的字符串,因为前面是常量不可变
		System.out.println("asdfsdf".matches("\\w+"));		//匹配字符串
	}
}



正则表达式基础及java使用,布布扣,bubuko.com

正则表达式基础及java使用

标签:正则表达式   java   正则匹配   常用语法   匹配用法   

原文地址:http://blog.csdn.net/u012457196/article/details/38537009

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!