java 之 正则表达式
正则表达式:A:字符x 代表字符x。如 a 标识'a'\\ 反斜杠字符\n 换行符('\u000A')\r 回车符('\u000D')B:字符类[abc] 代表有a 或 b 或 c 有且只有一个字符[^abc] a b c都不是[a-zA-Z] 所有字母中的一个(有一个闭区间范围内的值)[0-9] 0到9之间的一个字符C:预定义子父类. 任意字符\d 数字字符\D 非数字字符\s 空白字符[\t\n\r\x0B]\S 非空白字符[^\s]\w 单词字符[a-zA-Z_0-9](下划线也属于单词字符)\W 非单词字符D:边界匹配器^ 开头$ 行为\b 单词边界 (不是单词字符的地方)E:数量词X? 至多一次X* 零次或者多次X+ 至少一次X{n} 刚好n次X{n,} 至少n次X{n,m} n到m次,闭区间正则表达式常见例子判断: boolean matches(String regex)regex 为正则表达式字符串分割: String[] split(String regex)替换: String replaceAll(String regex,String replacement)
——————————————————————————————————————————————————————————————————————————————————————————————————————package demo;import java.util.Scanner;public class demo1 {public static void main(String[] args) {// System.out.println(judgeCellnumber());System.out.println(emailCheck());}//实例:判断输入字符是否是一个手机号(11位数字,1开头)public static boolean judgeCellnumber() {boolean flag = false;System.out.println("请输入手机号:");String cellNum = new Scanner(System.in).next();//获取输入的字符串String regex = "[1][3578][0-9]{9}";//手机号的正则表达式// String regex = "[1]\\d{10}";flag = cellNum.matches(regex);//匹配判断return flag;}public static boolean emailCheck(){boolean flag = false;System.out.println("请输入邮箱:");String cellNum = new Scanner(System.in).next();//获取输入的字符串String regex = "(\\w)+@\\w{2,6}(\\.\\w{2,3})+";//正则表达式// String regex = "[1]\\d{10}";flag = cellNum.matches(regex);//匹配判断return flag;}//判断邮箱功能}
——————————————————————————————————————————————————————————————————————————————————————————————————//获取字符串中只有3个字母的单词package demo;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test2 {public static void main(String[] args) {String str = "wo shi huang yha ning,ni hao la,haha hah";//正则表达式原始String regex = "\\b\\w{3}\\b";//将正则表达式编译到模式中Pattern p = Pattern.compile(regex);Matcher m = p.matcher(str);//模式的匹配过滤器// boolean b = m.matches();// System.out.println(b);System.out.println(p.pattern());//返回此编译模式的正则表达式// System.out.println("find匹配的字符:"+m.find());// System.out.println(m.group());// // System.out.println("find匹配的字符:"+m.find());// System.out.println(m.group());boolean b = false;while(b=m.find()){System.out.println("find匹配的结果:"+b);System.out.println(m.start());//返回前一个find的匹配的初始索引System.out.println(m.end());//返回最后匹配字符之后的偏移量System.out.println("偏移量截到的字符串:"+str.subSequence(m.start(), m.end()));System.out.println("group获取的字符串:"+m.group());}}}输出结果\b\w{3}\bfind匹配的结果:true36偏移量截到的字符串:shigroup获取的字符串:shifind匹配的结果:true1316偏移量截到的字符串:yhagroup获取的字符串:yhafind匹配的结果:true2528偏移量截到的字符串:haogroup获取的字符串:haofind匹配的结果:true3740偏移量截到的字符串:hahgroup获取的字符串:hah
————————————————————————————————————————————————————————————————————————————————————————————————————————————//我我我......我爱爱爱...爱学..学.....编编程.....//转为 我爱学编程public class Test11 {public static void main(String[] args) {String str = "我我我......我爱爱爱...爱学..学.....编编程.....";//将.替换成空字符str = str.replaceAll("\\.", "");System.out.println(str);//去除叠词str = str.replaceAll("(.)\\1+","$1");System.out.println(str);str = "abcabcaaabcaaaabbccabc";str = str.replaceAll("(abc(aa))\\1", "*");System.out.println(str);}}输出结果:我我我我爱爱爱爱学学编编程我爱学编程abc*aabbccabc
java 之 正则表达式相关推荐
- java正则截取xml节点_实例讲述Java使用正则表达式截取重复出现的XML字符串功能...
Java使用正则表达式截取重复出现的XML字符串功能示例 本文实例讲述了Java使用正则表达式截取重复出现的XML字符串功能.分享给大家供大家参考,具体如下: public static void m ...
- java 自定义正则表达式_java中正则表达式实例详解
Java中正则表达式运用实例(参看java中正则表达式运用详解): 测试代码 package test; /** * 在String的matches()方法,split()方法中使用正则表达式. * ...
- java match正则不生效_[Java教程]正则表达式match()函数
[Java教程]正则表达式match()函数 0 2015-09-26 12:00:31 正则表达式match()函数: 此方法可在字符串内查找一个或多个正则表达式的匹配. 返回值是一个数组,但是此数 ...
- java编写正则表达式_如何用Java编写最快的表达式评估器之一
java编写正则表达式 当然,标题有点吸引人,但确实如此(您当然不相信自己没有伪造自己的基准,但这是另一回事了). 因此,上周我正在寻找一个小型且可用的库来评估数学表达式. 我几乎直接偶然发现了这个s ...
- Java总结:正则表达式进行校验
Java总结:正则表达式进行校验 目录 Java总结:正则表达式进行校验 一.校验数字的表达式 二.校验字符的表达式 了解理论知识,请点击:Java总结:正则表达式 一.校验数字的表达式 1 数字:^ ...
- Java总结:正则表达式
目录 Java 正则表达式 正则表达式实例 实例 捕获组 实例 RegexMatches.java 文件代码: 正则表达式语法 Matcher 类的方法 索引方法 研究方法 替换方法 start 和 ...
- Java与正则表达式
Java与正则表达式 标签: Java基础 正则 正如正则的名字所显示的是描述了一个规则, 通过这个规则去匹配字符串. 学习正则就是学习正则表达式的语法规则 正则语法 普通字符 字母, 数字, 汉字, ...
- java常见正则表达式用法
java常见正则表达式用法 例1: 判断整个字符串是否只有大小写字母和数字 String str = "ABCaaa123GG";String reg = "^[A-Za ...
- JAVA:正则表达式(入门)
JAVA:正则表达式(入门) 正则表达式 JAVA:正则表达式(入门) 前言 正则的作用 正则的符号含义 正则表达式在字符串中的常用方法 正则表达式对象Pattern(爬虫) 贪婪爬取与非贪婪爬取 捕 ...
- 1000行代码徒手写正则表达式引擎【1】--JAVA中正则表达式的使用
简介: 本文是系列博客的第一篇,主要讲解和分析正则表达式规则以及JAVA中原生正则表达式引擎的使用.在后续的文章中会涉及基于NFA的正则表达式引擎内部的工作原理,并在此基础上用1000行左右的JAVA ...
最新文章
- 深入理解 Spring Cloud 核心组件与底层原理!
- Weblogic IIOP反序列化漏洞(CVE-2020-2551) 漏洞分析
- Android图片资源获取原则
- 迟到两年,Lu1与Cee合作的经典单曲《自己做决定》终于发布MV了!
- 7.01面试长沙黄花机场
- 《The Last Night》美术分析
- tomcat错误:The page you tried to access (/manager/login.do) does not exist
- c盘扩展卷功能只能向右扩展_信用风险管理:功能扩展和选择
- jQuery的.live()和.die()
- Java ObjectOutputStream flush()方法与示例
- java 判断两个数是否异号
- mysql连接方式左联_数据库中的左连接(left join)和右连接(right join)区别 | 改变自己...
- C# 人民币大小写转换正则表达式
- JVM 第五节:JVM 性能优化(上)
- Spring IOC源码分析
- 笔记本计算机涂硅脂,笔记本cpu怎么更换散热硅脂?笔记本电脑cpu涂硅脂教程
- 机器学习入门,转载博文,转自 飞鸟各投林
- 计算机有网络但打不开网页,手把手教你有网络但是打不开网页怎么办?
- ios -生成推广海报
- 如何按照DocNum+LineNum+流水号生成批次号