镇江高端网站建设,龙岩网站建设企业,什么是网络营销渠道,免费海报在线制作网站文章目录 快速入门匹配中文或数字或大小写字母(一个或多个) 正则表达式底层实现(重要)mather.find() 完成的任务mather.group(0) 分析 正则表达式基本语法元字符转义字符区分大小写限定字符选择匹配符特殊字符字符匹配符定位符 分组、捕获和反向引用捕获特别分组反向引用经典结… 文章目录 快速入门匹配中文或数字或大小写字母(一个或多个) 正则表达式底层实现(重要)mather.find() 完成的任务mather.group(0) 分析 正则表达式基本语法元字符转义字符区分大小写限定字符选择匹配符特殊字符字符匹配符定位符 分组、捕获和反向引用捕获特别分组反向引用经典结巴程序 三个常用类Pattern常用方法matches 整体匹配 Matcher常用方法 PatternSyntaxException 应用实例匹配汉字、邮政编码、qq号码、手机号匹配url对url进行解析 String中使用正则表达式替换验证手机号分割匹配验证是不是整数或者小数分割匹配验证是不是整数或者小数 快速入门 简单的说正则表达式是对字符串执行模式匹配的技术。 正则表达式regular expressionRegExp 匹配中文或数字或大小写字母(一个或多个)
String content abc12ABC34231esdfsABCdsadd想问ABC下我下午;
// 创建Pattern对象模式对象
Pattern pattern Pattern.compile(([\\u4e00-\\u9fff])|([0-9])|([a-zA-Z]));
// 创建匹配器对象
//理解就是matcher匹配器按照 pattern(模式/样式)到content文本中去匹配
// 找到就返回true,否则就返回false
Matcher matcher pattern.matcher(content);
while (matcher.find()) {// 匹配内容、文本放到 m.group(0)System.out.println(matcher.group(0));
}输出 正则表达式底层实现(重要)
mather.find() 完成的任务 考虑分组 mather.group(0) 分析 1.根据groups[0]0和groups[1]4的记录的位置从content开始截取子字符串返回 就是[0,4) 包含0但是不包含索引为4的位置 如果再次指向find方法仍然按上面分析来执行 //1小结 //1.如果正则表达式有()即分组 //2.取出匹配的字符串规则如下 //3. group(0)表示匹配到的子字符串 //4. group(1)表示匹配到的子字符串的第1组字串 //5. group(2)表示匹配到的子字符串的第2组字串 //16. … 但是分组的数不能越界 正则表达式基本语法
元字符
转义字符 在Java的正则表达式中两个\代表其他语 言中的一个\ 区分大小写 java正则表达式默认是区分字母大小写的如何实现不区分大小写 限定字符 细节java匹配默认贪婪匹配即尽可能匹配多的 选择匹配符 特殊字符
字符匹配符 定位符 分组、捕获和反向引用 1.分组 我们可以用圆括号组成一个比较复杂的匹配模式那么一个圆括号的部分我们可 以看作是一个子表达式/一个分组。 2.捕获 把正则表达式中子表达式/分组匹配的内容保存到内存中以数字编号或显式命名 的组里方便后面引用从左向右以分组的左括号为标志第一个出现的分组 的组号为1第二个为2以此类推。组0代表的是整个正则式 3.反向引用 圆括号的内容被捕获后可以在这个括号后被使用从而写出一个比较实用的匹 配模式这个我们称为反向引用这种引用既可以是在正则表达式内部也可以是 在正则表达式外部内部反向引用分组号外部反向引用$分组号 捕获 特别分组 反向引用 经典结巴程序
String content 我...我要...学学学学...编程java;
// 去掉所有的.
Pattern pattern Pattern.compile(\\.);
Matcher matcher pattern.matcher(content);
content matcher.replaceAll();
System.out.println(content);//String regExp ([\\u4e00-\\u9fff])\\1([\\u4e00-\\u9fff])\\2?([\\u4e00-\\u9fff])\\3([\\u4e00-\\u9fff])(\\w);// pattern Pattern.compile((.)\\1);
// matcher pattern.matcher(content);
// while (matcher.find()) {
// System.out.println(找到 matcher.group());
// }
// // 使用 反向引用$1 来替换匹配到的内容
// content matcher.replaceAll($1);
// System.out.println(content);// 使用一条语句 去掉重复的字
content Pattern.compile((.)\\1).matcher(content).replaceAll($1);
System.out.println(content);三个常用类 java.util.regex包主要包括以下三个类Pattern类、Matcher类和PatternSyntaxException Pattern类 pattern对象是一个正则表达式对象。Pattern类没有公共构造方法。要创建一个Pattern对 象调用其公共静态方法它返回一个Pattern对象。该方法接受一个正则表达式作为它的第 一个参数比如Pattern rPattern.compile(pattern); Matcher类 Matcher对象是对输入字符串进行解释和匹配的引擎。与Pattern类一样Matcher也没有 公共构造方法。你需要调用Pattern对象的matcher方法来获得一个Matcher对象 PatternSyntaxException PatternSyntaxException是一个非强制异常类它表示一个正则表达式模式中的语法错误。 Pattern
常用方法
matches 整体匹配 用于整体匹配在验证输入的字符串是否满足条件使用 Matcher
常用方法 替换 PatternSyntaxException
应用实例
匹配汉字、邮政编码、qq号码、手机号
String content 韩顺平教育;
content 13588889999;
// 汉字
//String regExp ^[\u0391-\uffe5]$;// 邮政编码
// 要求是1-9开头的六位数
//String regExp ^[1-9]\\d{5}$;// qq号码
// 要求1-9开头的一个(5位数-10位数)
//String regExp ^[1-9]\\d{4,9}$;// 手机号码
// 要求必须以13,14,15,18 开头的11位数比如 13588889999
String regExp ^1[3|4|5|8]\\d{9}$;
Pattern pattern Pattern.compile(regExp);
Matcher matcher pattern.matcher(content);
if(matcher.find()) {
System.out.println(matcher.group(0));
}匹配url
String content https://www.bilibili.com/video/BV1fh411y7R8?p894vd_sourcec12af894764c0594ed08999165cda06a;
String regExp ^((http|https)://)?([\\w-]\\.)[\\w-](/[\\w-?/%.#]*)?$;
Pattern compile Pattern.compile(regExp);
Matcher matcher compile.matcher(content);
if (matcher.find()) {System.out.println(matcher.group());
}对url进行解析 String url https://www.google.com:8080/abc/index.html;
String regExp ^(https?)?(?:://)?(\\w\\.\\w\\.?\\w*\\.?\\w)(?::(\\d{2,5}))?(?:/\\w/)?(\\w\\.[a-zA-Z])?$;
Pattern pattern Pattern.compile(regExp);
Matcher matcher pattern.matcher(url);
if (matcher.matches()) {System.out.println(协议 matcher.group(1));System.out.println(域名 matcher.group(2));System.out.println(端口 matcher.group(3));System.out.println(文件名 matcher.group(4));
} else {System.out.println(匹配失败);
}String中使用正则表达式
替换 验证手机号 分割匹配 验证是不是整数或者小数 分割匹配 验证是不是整数或者小数