在JAVA中使用正则表达式

本文介绍了在Java中使用正则表达式的方法。JDK1.4加入了java.util.regex包支持正则表达式,Java.lang.String类的replaceAll和split函数也调用正则实现。通过示例展示了正则表达式对字符串的匹配、替换、查找和分割操作。
 

JAVA中使用正则表达式

  jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。

  正则表达式对字符串的操作主要包括:字符串匹配,指定字符串替换,指定字符串查找和字符串分割。下面就用一个例子来说明这些操作是如何实现的:

<%@ page import="java.util.regex.*"%>

<%

 Pattern p=null; //正则表达式

 Matcher m=null; //操作的字符串

 boolean b;

 String s=null;

 StringBuffer sb=null;

 int i=0;

 //字符串匹配,这是不符合的

  p = Pattern.compile("a*b");

  m = p.matcher("baaaaab");

  b = m.matches();

 out.println(b+"<br>");

//字符串匹配,这是符合的

  p = Pattern.compile("a*b");

  m = p.matcher("aaaaab");

  b = m.matches();

  out.println(b+"<br>");

//字符串替换

  p = Pattern.compile("ab");

  m = p.matcher("aaaaab");

  s = m.replaceAll("d"); 

  out.println(s+"<br>");

  p = Pattern.compile("a*b");

  m = p.matcher("aaaaab");

  s = m.replaceAll("d"); 

  out.println(s+"<br>");

  p = Pattern.compile("a*b");

  m = p.matcher("caaaaab");

  s = m.replaceAll("d"); 

  out.println(s+"<br>");

//字符串查找

 p = Pattern.compile("cat");

 m = p.matcher("one cat two cats in the yard");

 sb = new StringBuffer();

 while (m.find()) {

     m.appendReplacement(sb, "dog");

     i++;

 }

 m.appendTail(sb);

 out.println(sb.toString()+"<br>");

 out.println(i+"<br>");

 i=0;

 p = Pattern.compile("cat");

 m = p.matcher("one cat two ca tsi nthe yard");

  sb = new StringBuffer();

 while (m.find()) {

     m.appendReplacement(sb, "dog");

     i++;

 }

 m.appendTail(sb);

 out.println(sb.toString()+"<br>");

 out.println(i+"<br>");

 

 

 p = Pattern.compile("cat");

 m = p.matcher("one cat two cats in the yard");

 p=m.pattern();

 m = p.matcher("bacatab");

 b = m.matches();

 out.println(b+"<br>");

 s = m.replaceAll("dog");

 out.println(s+"<br>");

 

 i=0;

 p = Pattern.compile("(fds){2,}");

 m = p.matcher("dsa da fdsfds aaafdsafds aaf");

  sb = new StringBuffer();

 while (m.find()) {

     m.appendReplacement(sb, "dog");

     i++;

 }

 m.appendTail(sb);

 out.println(sb.toString()+"<br>");

 out.println(i+"<br>");

 

  p = Pattern.compile("cat");

  m = p.matcher("one cat two cats in the yard");

  sb = new StringBuffer();

  while (m.find()) {

     m.appendReplacement(sb, "<font color=/"red/">cat</font>");

  }

m.appendTail(sb);

out.println(sb.toString()+"<br>");

String aa=sb.toString();

out.println(aa+"<br>");

//字符串分割

  p = Pattern.compile("a+");

  String[] a=p.split("caaaaaat");

  for(i=0;i<a.length;i++)

  {

  out.println(a[i]+"<br>");

  }

  p = Pattern.compile("a+");

  a=p.split("c aa aaaa t",0);

  for(i=0;i<a.length;i++)

  {

  out.println(a[i]+"<br>");

  }

  p = Pattern.compile(" +");

  a=p.split("c aa    aaaa t",0);

  for(i=0;i<a.length;i++)

  {

  out.println(a[i]+"<br>");

  }

  p = Pattern.compile("//+");

  a=p.split("dsafasdfdsafsda+dsagfasdfa+sdafds");

  out.println(a.length+"<br>");

  for(i=0;i<a.length;i++)

  {

  out.println(a[i]+"<br>");

  }

%>

Java使用正则表达式进行字符串替换可以通过`String`类的`replaceAll`方法或`Matcher`类的`replaceAll`方法来实现。以下是两种常见的方法: ### 方法一:使用`String`类的`replaceAll`方法 ```java public class RegexReplaceExample { public static void main(String[] args) { String originalString = "Hello World! Welcome to the World of Java."; // 使用正则表达式替换所有的"World"为"Universe" String modifiedString = originalString.replaceAll("World", "Universe"); System.out.println(modifiedString); } } ``` ### 方法二:使用`Matcher`类的`replaceAll`方法 ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexReplaceExample { public static void main(String[] args) { String originalString = "Hello World! Welcome to the World of Java."; // 定义正则表达式模式 Pattern pattern = Pattern.compile("World"); // 创建Matcher对象 Matcher matcher = pattern.matcher(originalString); // 使用Matcher的replaceAll方法进行替换 String modifiedString = matcher.replaceAll("Universe"); System.out.println(modifiedString); } } ``` ### 解释 1. **String类的replaceAll方法**: - `replaceAll`方法接受两个参数,第一个是正则表达式模式,第二个是替换字符串。 - 在示例中,`"World"`被替换为`"Universe"`。 2. **Matcher类的replaceAll方法**: - 首先创建一个`Pattern`对象,定义正则表达式模式。 - 然后创建一个`Matcher`对象,将待处理的字符串传入。 - 最后调用`Matcher`对象的`replaceAll`方法进行替换。 这两种方法都可以实现字符串的替换,选择哪种方法取决于具体的使用场景和个人习惯。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值