1、若想要将正则表达式视为一个对象来重复使用,就可以使用Pattern的静态方法compile()进行编译。compile()方法会返回一个Pattern实例。这个实例代表正则表达式,以后就可以重复使用这个Pattern实例的matcher()方法来返回一个Matcher实例,该实例代表符合正则式的实例。
/**
* 作者:阳光的味道
* 功能:Patrern、Matcher示例
* 日期:2010/11/08
* */
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestPatterAndMacher {
public static void main(String[] args) {
//通过compile()方法创建Pattern实例
Pattern pattern=Pattern.compile("java");
//通过match()创建Matcher实例
Matcher matcher=pattern.matcher("java Java java JAVA jAva");
while (matcher.find())//查找符合pattern的字符串
{
System.out.println("The result is here :" +
matcher.group() + "\n" + "It starts from "
+ matcher.start() + " to " + matcher.end() + ".\n");
}
}
}
输出结果:
The result is here :java
It starts from 0 to 4.
The result is here :java
It starts from 10 to 14.
在上面的代码Pattern pattern=Pattern.compile("java")改为Pattern pattern=Pattern.compile("java",Pattern.CASE_INSENSITIVE)。此时可以不区分大小写地查找。
/**
* 作者:阳光的味道
* 功能:Patrern、Matcher示例
* 日期:2010/11/08
* */
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestPatterAndMacher {
public static void main(String[] args) {
//通过compile()方法创建Pattern实例
Pattern pattern=Pattern.compile("java",Pattern.CASE_INSENSITIVE);
//通过match()创建Matcher实例
Matcher matcher=pattern.matcher("java Java java JAVA jAva");
while (matcher.find())//查找符合pattern的字符串
{
System.out.println("The result is here :" +
matcher.group() + "\n" + "It starts from "
+ matcher.start() + " to " + matcher.end() + ".\n");
}
}
}
结果:
The result is here :java
It starts from 0 to 4.
The result is here :Java
It starts from 5 to 9.
The result is here :java
It starts from 10 to 14.
The result is here :JAVA
It starts from 15 to 19.
The result is here :jAva
It starts from 20 to 24.
忽略大小的写法也可以有以下简单方法:
/**
* 作者:阳光的味道
* 功能:Patrern、Matcher示例
* 日期:2010/11/08
* */
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestPatterAndMacher {
public static void main(String[] args) {
//通过compile()方法创建Pattern实例
Pattern pattern = Pattern.compile("java");
//通过match()创建Matcher实例
Matcher matcher=pattern.matcher("java Java java JAVA jAva");
while (matcher.find())//查找符合pattern的字符串
{
System.out.println("The result is here :" +
matcher.group() + "\n" + "It starts from "
+ matcher.start() + " to " + matcher.end() + ".\n");
}
System.out.println("Java".matches("(?i)(java)"));
}
}
/*out:
The result is here :java
It starts from 0 to 4.
The result is here :java
It starts from 10 to 14.
true*/
/**
* 作者:阳光的味道
* 功能:Patrern、Matcher示例
* 日期:2010/11/08
* */
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestPatterAndMacher {
public static void main(String[] args) {
//通过compile()方法创建Pattern实例
Pattern pattern = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
//通过match()创建Matcher实例
Matcher matcher=pattern.matcher("java Java java JAVA jAva avafdsafdsaf");
StringBuffer buffer=new StringBuffer();
int i=0;
while (matcher.find())
{
i++;
if(i%2==0)
{ //偶数项替换为JAVA
matcher.appendReplacement(buffer, "JAVA");
}
else { //基数项替换为java
matcher.appendReplacement(buffer, "java");
}
}
matcher.appendTail(buffer);//将剩余的不匹配部分也追加到buffer中
System.out.println(buffer);
}
}
/*out:
java JAVA java JAVA java avafdsafdsaf
*/
分享到:
相关推荐
Matcher matcher = pattern.matcher(str); while(matcher.find()) { String group = matcher.group(); String res = group.substring(1, group.length() - 1); System.out.println(group + ":" + res); } }
Java正则表达式的类在 java.util.regex 包中,包括三个类:Pattern,Matcher 和 PatternSyntaxException。 Pattern对象是正则表达式的已编译版本。他没有任何公共构造器,我们通过传递一个正则表达式参数给公共静态...
它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例...
获取大括号小括号内容 项目开发用到了,暂做个简单记录 private static String regex = "\\{([^}]*)\\}";//匹配大括号 private static String regexx = "\\(([^}]*)\\)";... Matcher matcher = compile.matcher(daku
Pattern类用于编译正则表达式,而Matcher类则用于在文本中进行匹配。 String regex = "pattern"; String input = "string"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(input);...
在java中,通过适当命名的Pattern类可以容易确定String是否匹配某种模式.模式可以象匹配某个特定的String那样简单,也可以很复 杂,需要采用分组和字符类,如空白,数字,字母或控制符.因为Java字符串基于统一字符
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String s = A876X; // 把要匹配的字符串写成正则表达式,然后要提取的字符使用...
* Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * Characters 字符: * x The character x x 字符 x * \\ The ...
Java.util.regex包支持3.1 Pattern类(常用方法)3.2 Matcher类(常用方法)4. 简单运用4.1 邮箱格式验证4.2 SQL语句内容抽取4.3 数字验证4.4 匹配分组加多次匹配5. 真题5.1 压缩算法5.2 音节判断5.3 正则表达式匹配(剑...
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 正则表达式 * 正则表达式 的用法主要是4种方面的使用 * 匹配,分割,替换,获取. * 用一些简单的符号来代表代码的操作 * @author cyc...
代码如下:/** * 验证 正则表达式 * * @author zhujie regex 正则表达式 value 所属字符串 * @return boolean */ public static boolean regex(String regex, String value) { Pattern p = Pattern.compile(regex);...
Pattern对象是正则表达式编译后在内存中的表示形式,因此,正则表达式字符串必须先编译为Pattern对象,然后再利用该Pattern对象创建对应的Matcher对象,执行匹配所涉及的状态保留在Matcher对象中,多个Matcher对象可...
例子:颜色:粉色[10] 尺码:S[5] 去掉[ ]及内容: preg_replace(/\[.*\]/, '', ...import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) {
import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestReg { static String reg = "<[a-zA-Z]+.*?>([sS]*?)</[a-zA-Z]*>"; public static void main(String[] args) { ...
使用的是用正则对象Pattern 和匹配器Matcher。 用法: 范例: Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches(); 步骤: 1,先将正则表达式编译成正则对象。...
import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing....
代码如下: public static void main(String[] args) { String ... String sql2 = Pattern.compile(” {2,}”).matcher(s).replaceAll(” “); String sql3 = s.replaceAll(” {2,}”,” “); String sql4 = sql.repla
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author: gznc_pcc * @date:2018年6月1日 10:50:38 * @version : * */ class Main { public static void main(String[] args) { ...
import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringCounter { /** * 正则统计字符串出现次数 * * @param source * @param regexNew * @return int */ public ...
Matcher matcher = pattern.matcher(line); while(matcher.find()) { String group = matcher.group(); resSet.add(group); } return resSet; } private void write2file() { BufferedWriter bw = null;...