java lambda表达式详解_Java正则表达式详解

亲爱的小伙伴们,本期我们讲解java中的正则表达式和它相关的一些类与方法。

概述

正则表达式非常强大,能够解决我们开发时用于匹配一些特定的要求。并且java中还提供了相当强大的方法,扩展其功能性。下面我们就来介绍一下:

1.定义一个关于用户名的正则表达式

String regex = "[一-鿯[a-z][A-Z]{2}]w{6,20}";

2.定义一个关于密码的正则表达式

String password = "[w.]{6,16}";

3. 定义一个关于QQ邮箱的正则表达式

String email = "[d@qq.com]{12,16}";

4.两个用来处理正则表达式的工具类

compile是静态方法,用于编译规则返回Pattern对象

matcher用于匹配字符串

Pattern p = Pattern.compile(regex);

Matcher m = p.matcher(str);

5.find():判断字符串是否匹配

6.group():将匹配到的字符串分组

7.start()和end():分别表示第几轮匹配到的字符串的下标,end()下标自动加1

8.appendReplacement():用特定的字符串替代匹配到的字符串,并放入其第一个参数 StringBuffer中

9.appendTail():将最后匹配到的字符串的剩余串放入StringBuffer中

应用

46994ab76fda91ef94b962693f0b6bad.png
4c8e7358496fca7073a8823306758971.png
c18c0a1a67cfdc74d6975e4d0297864f.png
fe77ff22d05faa9ff5cbb00e23e460ef.png
c73f8c645ef4be9b1903112bd0ff1722.png
package com.bbc.regex;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexDemo {// 定义一个全局变量用于计数static int count = 0;// 定义一个全局变量用于替代static String replaceStr = "-";public static void main(String[] args) {// 定义一个关于用户名的正则表达式String regex = "[一-鿯[a-z][A-Z]{2}]w{6,20}";// 定义匹配的子段String str = "吴dadadadda31da";// 定义一个关于密码的正则表达式String password = "[w.]{6,16}";// 定义匹配的字段String passwordStr = "dafa........";// 定义一个关于QQ邮箱的正则表达式String email = "[d@qq.com]{12,16}";// 定义匹配的字段String emailStr = "146456416@qq.com";// 定义一个字段用于测试find方法String line = "454156135dada ...";String pattern = "(d+)([a-z]+)(s)(.*)";//定义一个字段用于测试start_end方法String test = "abcb";String testStr = "abc dada abc dad abc ad";// 定义一个字段用于测试replace方法String replace = "a*b";// 定义一个匹配的字段String replaceStr1 = "aabdadasabdadabbadadaabda";System.out.println("用户名:" + judge(regex, str));System.out.println("密    码:" + judge(password, passwordStr));System.out.println("邮    箱:" + judge(email, emailStr));find(pattern, line);start_end(test, testStr);replace(replace,replaceStr1);}// 定义一个方法,判断字符串是否合法public static boolean judge(String regex, String str) {Pattern p = Pattern.compile(regex);Matcher m = p.matcher(str);return m.matches();}// 定义一个方法,获取字符串的分割点public static void find(String regex, String str) {Pattern p = Pattern.compile(regex);Matcher m = p.matcher(str);if (m.find()) {System.out.println("value1" + ":" + m.group(0));System.out.println("value2" + ":" + m.group(1));System.out.println("value3" + ":" + m.group(2));System.out.println("value4" + ":" + m.group(3));System.out.println("value5" + ":" + m.group(4));}}// 定义一个方法,获取每个分割点的坐标public static void start_end(String regex , String str){Pattern p = Pattern.compile(regex);Matcher m = p.matcher(str);while(m.find()){count++;System.out.println("第"+ count +"次循环");System.out.println("start:" + m.start());System.out.println("end:" + m.end());}}// 定义一个方法,用特定的字段取代匹配的字段public static void replace(String regex , String str){Pattern p = Pattern.compile(regex);Matcher m = p.matcher(str);StringBuffer sb = new StringBuffer(); while(m.find()){m.appendReplacement(sb, replaceStr);}m.appendTail(sb);System.out.println("sb:" + sb);}}

演示

2eff4548c2444db84e29c4ed1b6d484c.png

本期内容到此结束,我们下期不见不散!

本文由IT萌娃原创,欢迎关注,带你一起长知识!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值