java正则表达式 3 -- 查找
用正则表达式执行查找命令,则需要用正则对象,其规则和执行顺序如下:
指定为字符串的正则表达式必须首先被便以为此类的实例。然后,可将得到的正则对象匹配任意的字符串用于创建Mather对象,执行匹配所涉及的所有状态都驻留在匹配其中,所以多个匹配器可以共享同一个模式。
查找需要使用的对象:
Pattern 正则对象
Matcher 匹配器对象
因此,典型的调用顺序为:
Pattern p = Pattern.compile("正则");
Matcher m = p.matcher("aaaaaab");
boolean b = m.matchers();
匹配器要使用到的方法:
find() 通知匹配器去匹配字符串,查找符合规则的字符串。如果能查找到符合规则的字符串,返回true
group() 获取符合规则的子串
下面用代码实现对一段字符串中邮箱的查找,假设邮箱规则:@前:位数为3-18位,首位是不能为0或者下划线的字符,其他位任意字符 @后:2位以上的非下划线字符+(.com .cn .net .com.cn)
public class Demo2 {
public static void main(String[] args) {
//找出邮箱
String str = "联系邮箱:老王-1543644@qq.com;老赵-zhao@sina.com;"
+ "Tim-timEmail@gg.net;大明-ming@safe.com.cn;盖茨-gaici@ma.cn";
String reg = "[a-zA-Z1-9]\\w{2,17}@[a-zA-Z0-9]{2,}(\\.(com|cn|net)){1,2}";
//指定为字符串的正则表达式必须首先被便以为此类的实例
Pattern p = Pattern.compile(reg);
//使用正则对象匹配字符串用于产生一个mather对象
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group());
}
}
}
补充:
加入对字符串“ri zhao xiang lu sheng zi yan”查找,查找其中的两个字母组成的子串
如果直接把正则写成reg="[a-zA-Z]{2}",那么查询结果就会如下:
ri
zh
xi
lu
sh
zi
ya
可以看到,不仅查到了组成字符个数为两个的单词,还查到了多个的并且剪切到了前两位。此时就要加入边界匹配器:

那么我们新的正则就应该是reg="\\b[a-zA-Z]{2}\\b" ,执行结果为:
ri
lu
zi
java正则表达式 3 -- 查找的更多相关文章
- Java正则表达式入门——转自RUNOOB.COM
Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...
- Java 正则表达式详解
Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索 ...
- 【转】详解Java正则表达式语法
(转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...
- Java 正则表达式[转载]
PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...
- 【转】java正则表达式
在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu ...
- java正则表达式四种常用的处理方式是怎么样呢《匹配、分割、代替、获取》
java 正则表达式高级篇,介绍四种常用的处理方式:匹配.分割.替代.获取,具体内容如下package test; import java.util.regex.Matcher; import jav ...
- java正则表达式语法详解及其使用代码实例
原文地址 译者序(下载代码) 正则表达式善于处理文本,对匹配.搜索和替换等操作都有意想不到的作用.正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率. ...
- java 正则表达式学习
一. Java正则表达式 在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂. 因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 正则表达式是一种可 ...
- JAVA 正则表达式 (超详细)
(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇.作者是个正真有功力的人,阅读愉快) 在Sun的Java JDK 1.40版本中 ...
随机推荐
- 数据恢复顾问(DRA)
(1)DRA介绍 数据恢复顾问(Data Recovery Advise)是一个诊断和修复数据库的工具,DRA能够修复数据文件和(某些环境下)控制文件的损坏,它不提供spfile和logfile的修复 ...
- 2018/7/19 考试(tower,work,holes)
noip模拟赛,挺良心的题,考的贼烂(膜一下@来日方长大佬(sdfz rank1)) 不多说了,看题吧 1.tower 题面: 铁塔(tower.pas/c/cpp) 题目描述 Rainbow和Fre ...
- 【模板】string中substr函数的运用
substr有两种用法: 假设:string s = "0123456789" ; //下标从0开始 ① string a = s.substr(5) ...
- leetcode笔记(三)207. Course Schedule
题目描述(原题目链接) There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may ...
- CSRF的原理和防范措施
a)攻击原理: i.用户C访问正常网站A时进行登录,浏览器保存A的cookie ii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参 ...
- CASE WHEN 小结
1.简单的一个case when 例子: CASE sex ' THEN '男' ' THEN '女' ELSE '其他' END 2. case when 在一整个表为空强行让其显示出一个值,在其后 ...
- 关于对连接数据库时出现1130-host “**” is not allowed to connect to this MySql/mariadb server 的错误解决方法
在完成mariadb的搭建后,在端口与防火墙均为正常的情况下,出现了1130- Host xxx is not allowed to connect to this MariaDb server 的情 ...
- JS高级. 01 复习JS基础
1. JavaScript 包含: ____, ____, 和 ____. 2. JavaScript 的基本类型有 ____, ____, 和 ____. 3. JavaScript 的复合类型有 ...
- 接口API封装中常见的HTTP状态码
在进行后端接口API封装的过程中,需要考虑各种错误信息的输出.一般情况下,根据相应问题输出适合的HTTP状态码,可以方便前端快速定位错误,减少沟通成本. HTTP状态码有很多,每个都有对应的含义,下面 ...
- Phpstrom开发工具
下载地址 https://www.jetbrains.com/zh/phpstorm/specials/phpstorm/phpstorm.html?utm_source=baidu&utm_ ...