JAVA正则表达式

java.util.regex 包
Pattern(模式类)和Matcher(匹配器类)
Pattern类是用来表达和陈述所要搜索模式的对象,Matcher类是真正影响搜索的对象。另加一个新的例外类,PatternSyntaxException,当遇到不合法的搜索模式时,会抛出例外。
类Pattern java.util.regex.Pattern 实现接口Serializable
正则表达式首先要被编译为此类的实例,然后将得到的模式用于创建Matcher对象。依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。

Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
//boolean b = Pattern.matches("a*b", "aaaaab");

字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[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 次


		/*
		String str1="1243542321";
//		Pattern pattern=Pattern.compile("[0-9]+");
		boolean flag=str1.matches("\\d+");//  + 一次或多次
		//\d 数字 \w 单词字符[a-zA-Z_0-9]
		System.out.println(flag);
		System.out.println("a".matches("."));
		//? 一次或一次也没有   *0次或多次  +一次或多次 {n}恰好n次  {n,}至少n次 {n,m}至少n次但不超过m次
		System.out.println("aa".matches("[a-z]{2}"));
		System.out.println("abc".matches("[a-z]{3,}"));
		//$ 结尾符号   ^开头符号
		System.out.println("demo.java".matches("\\w+\\.java$"));
		System.out.println("45678".matches("^[^0]\\d+"));
		//匹配QQ号
		Pattern pattern=Pattern.compile("^[^0][0-9]{5,15}");
		System.out.println("12345".matches("^[^0]{1}[0-9]{4,14}"));
		System.out.println("12345".matches("[1-9][0-9]{4,14}"));
		//匹配手机号
		String phoneNumber="13138555555";
		System.out.println(phoneNumber.matches("1[35]\\d{9}"));
		*/
		//分割
		/*
		String str2="aa.bb.cc.dd";
		String str3="aa  bb  cc dd";
		String[] str2_array=str2.split("\\.");
		String[] str3_array=str3.split(" +");
		for(String str:str3_array) {
			System.out.println(str);
		}
		
		String str="hello world good";
		String[] str_array=str.split("(.)\\1+"); //\1表示第一个括号的编号
		for(String s:str_array) {
			System.out.println(s);
		}*/
		
		//替换功能
		/*
		String str="good good";
		String str_change=str.replaceAll("(.)\\1+", "$1");//$获取该方法中正则实际参数中的某一个存在的组的编号
		System.out.println(str_change);
		String nums="123sad123sad123sad";
		String nums_change=nums.replaceAll("[a-z]+", "");
		System.out.println(nums_change);
		*/
		
		//获取
		/*
		//提取单词长度为4的单词
		String str="hello everyone,I want to tell you,good luck";
		Pattern p=Pattern.compile("\\b[a-z]{4}\\b");//\b 单词边界
		Matcher m=p.matcher(str);
		while(m.find()) {
			System.out.println(m.start()+"..."+m.end());
			System.out.println(str.substring(m.start(),m.end()));
			System.out.println(m.group());
		}*/
		/*
		String str="我我...要要..要学...学学学...编..程..";
		String str_change1=str.replaceAll("\\.+", "");
		System.out.println(str_change1);
		String str_change2=str_change1.replaceAll("(.)\\1+", "$1");
		System.out.println(str_change2);
		*/
		
		//匹配
		String regex="\\w+@\\w+(\\.\\w+)+";
		String mail="zhaojr2018@163.com";
		System.out.println(mail.matches(regex));
		//trim()

	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Github下载地址:https://github.com/XLAccount/MiaoBo 项目详解地址:http://www.code4app.com/blog-843201-350.html 快速集成RTMP的视频推流教程:http://www.code4app.com/blog-843201-315.html ffmpeg常用命令操作:http://www.code4app.com/blog-843201-326.html #关于IJKMediaFramework/IJKMediaFramework.h找不到的问题,下载后直接拉到项目中即可 下载地址:https://pan.baidu.com/s/1boPOomN 密码::9yd8 #BUG修复: 解决登录程序偶尔崩溃,修复轮播图片和页面控制器叠加等问题,修复新浪授权登录 (2016.9.7) 解决程序运行中偶尔崩溃问题,解决连续下拉刷新崩溃问题,优化代码 (2016.9.8) 优化直播页面,减少不必要的性能消耗,增加用户体验 (2016.9.11) 适配5s以上的机型除了6sPlus和6Plus延迟较大外,其余延迟都较小,网速好的话可以忽略不计 (2016.9.12) 新版本极大优化程序性能,修复关注数据异常等小问题,重新布局热门页面,减少因反复加载带来的性能消耗 (2016.9.13) 增加个人中心页面,采用下拉放大图片 ➕ 波纹效果 (2016.9.14) ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb.gif) 展示图片 ![image](https://github.com/XLAccount/ALLGIFS/blob/master/psb-1.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-2.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-3.gif) 展示图片 感谢大神Monkey_ALin http://www.jianshu.com/users/9723687edfb5/latest_articles 的demo支持

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值