ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在JAVA中使用正则表达式

在JAVA中使用正则表达式

原创 Linux操作系统 作者:rain0903 时间:2019-05-17 12:00:10 0 删除 编辑
2007-03-29 16:56

在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+"
"); false
//字符串匹配,这是符合的

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

m = p.matcher("aaaaab");

b = m.matches();

out.println(b+"
"); true
//字符串替换

p = Pattern.compile("ab");

m = p.matcher("aaaaab");

s = m.replaceAll("d");

out.println(s+"
"); aaaad
p = Pattern.compile("a*b");

m = p.matcher("aaaaab");

s = m.replaceAll("d");

out.println(s+"
"); d
p = Pattern.compile("a*b");

m = p.matcher("caaaaab");

s = m.replaceAll("d");

out.println(s+"
"); cd
//字符串查找

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()+"
"); one dog two dogs in the yard
out.println(i+"
"); 2
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()+"
"); one dog two ca tsi n the yard
out.println(i+"
"); 1




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+"
"); false
s = m.replaceAll("dog");
out.println(s+"
"); badogab


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()+"
"); dsa da dog aaafdsafds aaf

out.println(i+"
"); 1


p = Pattern.compile("cat");

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

sb = new StringBuffer();

while (m.find()) {

m.appendReplacement(sb, "cat");

}

m.appendTail(sb);

out.println(sb.toString()+"
"); one cat two cats in the yard

String aa=sb.toString();

out.println(aa+"
"); one cat two cats in the yard

//字符串分割

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

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

for(i=0;i
{

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

}
c

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

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

for(i=0;i
{

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

}
c

tp = Pattern.compile(" +");

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

for(i=0;i
{

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

}
c

aa

aaaa

t
p = Pattern.compile("\+");

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

out.println(a.length+"
");

for(i=0;i
{

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

}

%>

dsafasdfdsafsda

dsagfasdfa


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7178747/viewspace-160792/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Treeview
请登录后发表评论 登录
全部评论

注册时间:2006-04-07

  • 博文量
    708
  • 访问量
    620106