java正则表达式一:基本使用
java正则表达式主要涉及三个类:java.util.regex.Matcher、java.util.regex.Pattern、java.util.regex.PatternSyntaxException
java.util.regex.Pattern
该类主要用来创建匹配规则,并没有公共构造函数,通过两个工厂函数构造Pattern对象,实例如下:
Pattern pattern = Pattern.compile("B(ond)");
//或者
Pattern pattern = Pattern.compile("B(ond)", 0);
java.util.regex.Matcher
引擎类,所有和正则表达式匹配相关的操作均在此类中实现,该类也没有构造函数,构造对象有两种方法:
Matcher match = pattern.matcher("test string Bond");
//方法二
String regex="B(ond)";
String strs= "test string Bond";
Matcher mt = Pattern.matches(regex, strs);
实例1:
String strs = "My name is Bond. James Bond.";
Pattern pattern = Pattern.compile("B(ond)");
Matcher matcher = pattern.matcher(strs);
while(matcher.find()){
System.out.println("group" + 0 + ":" + matcher.group(0));
int gc = matcher.groupCount();
for(int i = 1; i
matcher.find()函数根据正则表示在字符串上从做到右做匹配,匹配一个则返回true,下一次匹配从当前匹配的结尾处开始
matcher.group(0)分组的概念:整个正则匹配的就是第零组,然后根据左括号一次从左到右为第1、2、3组,在本实例中,正则表达B(ond)有两个组:bond(0组)、ond(第一组),matcher.group(i)返回当前匹配的第i组的字符串
matcher.groupCount():返回匹配的组的个数,注意这里统计不计第零组
输出结果如下:
group0:Bond
group1:ond
实例2
String strs = "My name is Bond. James Bond.";
Pattern pattern = Pattern.compile("B(ond)");
Matcher matcher = pattern.matcher(strs);
while(matcher.find()){
System.out.println("group" + 0 + ":" + matcher.group(0));
int gc = matcher.groupCount();
for(int i = 1; i
实例2同实例1相比,多了几个函数
第一个mather.reset():将所有与匹配相关的状态重置,重置后的结果跟pattern.matcher(strs);第一次执行完的效果一样
第二个matcher.matches(),这个函数同matcher.find()函数相比,matches()是在整个字符串上做匹配,整个字符串匹配正则规则才会返回true;而find()是在字符串中做匹配,匹配到一个字符串就返回true,通过group()函数获取匹配的字符串,通过start()以及end()函数可以获取匹配的位置
输出如下:
group0:Bond
group1:ond
group0:Bond
group1:ond
First all matches fail
all matches:Bond
java正则表达式一:基本使用的更多相关文章
- java正则表达式
java正则表达式 1.Java正则表达式的语法与示例: http://baike.xsoftlab.net/view/207.html 2.Java 正则表达式: http://www.runo ...
- Java正则表达式入门——转自RUNOOB.COM
Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...
- Java 正则表达式详解
Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索 ...
- 【转】详解Java正则表达式语法
(转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...
- java正则表达式【大全】
[正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$& ...
- JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- JAVA正则表达式:Pattern类与Matcher类详解
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- Java 正则表达式[转载]
PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...
- Java正则表达式的应用
在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...
- Java正则表达式实用教程
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.java.util.regex包主要包括以下三个类:Pattern.Matcher和PatternSynta ...
随机推荐
- 最近新出的C++右值引用的意思
看了一下这种方法的介绍,个人感觉,右值引用,更像人类的思想了,有些将编译前与编译后结合紧密的感觉. 左值引用是变量名的别名,右值引用是值的别名,也就是不将值赋给一个变量名所在的地址,直接将值所在的初始 ...
- cocos2dx 自己主动加入cpp文件到android.mk
将 LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldSce ...
- C++学习路线
已经确定做C++后台的工作了,因此,要对C++要越来越熟悉才行,今天,在此列出学习和温习C++书籍的顺序,从而由浅入深地学习C++. 1. <C++ primer> 2. <Acce ...
- ZOJ 3822 Domination(概率dp)
一个n行m列的棋盘,每天可以放一个棋子,问要使得棋盘的每行每列都至少有一个棋子 需要的放棋子天数的期望. dp[i][j][k]表示用了k天棋子共能占领棋盘的i行j列的概率. 他的放置策略是,每放一次 ...
- Day3 - Python基础3 函数、递归、内置函数
Python之路,Day3 - Python基础3 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...
- java中?和A、B、T、E、K、V的区别
使用泛型 List<T> list = new ArrayList<T>(); T t = list.get(0); 不使用泛型 List list = new ArrayLi ...
- Html5 Canvas Text
html5 canvas中支持对text文本进行渲染;直接的理解就是把text绘制在画布上,并像图形一样处理它(可以加shadow.gradient.pattern.color fill等等):既然它 ...
- Swift - 24 - switch语句的高级用法
//: Playground - noun: a place where people can play import UIKit // 对区间进行判断 var score = 90 switch s ...
- UICollectionView设置item(cell)之间间距为0(紧挨在一起的效果)
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; self.layout = layout ...
- 跟我学android- 创建运行环境(二)
Android程序 需要在Android手机上运行,因此 Android开发时 必须准备相关运行,调试环境. Android真机(建议使用真机,速度快,效果好) Android虚拟设备(AVD) 使用 ...