正则表达式在js中大行其道,在Java中在JDK1.4以后引入,其中用到的包是java.util.regex,常用的类有 Pattern和Matcher,其中文名为模式和匹配,很好理解,就是一个定义模式,另一个来匹配。
ps:正则表达式是文本处理的重要技术,在Perl、PHP、Python、JavaScript、Java、C#中被广泛支持。被列为“保证你现在和未来不失业的十种关键技术”,呵呵,是不是很搞笑。
用法:
1、写一个特殊的字符串??正则表达式如a|f。
2、将正则表达式编译成一个模板:p
3、用模板p去匹配字符串str。
package com.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author jzq
* 正则表达式
* 2009-4-30
*/
public class RegularTest {
/**
* 传统方法:查询文本或字符串中是否有y和f字符
*/
static void method1(){
String str="For my money, the important thing "+
"about the meeting was bridge-building";
char x='y';
char y='f';
boolean result=false;
for(int i=0;i<str.length();i++){
char z=str.charAt(i); //System.out.println(z);
if(x==z||y==z) {
result=true;
break;
}
else result=false;
}
System.out.println(result);
}
/**
* 使用正则表达式包
*/
static void method2(){
String str="For my money, the important thing "+
"about the meeting was bridge-building";
String regEx="a|f"; //表示a或f
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
boolean result=m.find();
System.out.println(result);
}
/**
* 字符串的替换
*/
static void method3(){
String regEx="a+";//表示一个或多个a
String str="abbbaaa an banana hhaana";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
String s=m.replaceAll(""); // ("") 删除
System.out.println(s);
}
/**
* 验证是否整数
*/
public final boolean isInteger(String str){
if (str == null)
return false;
Pattern pattern = Pattern.compile("[0-9]+");
return pattern.matcher(str).matches();
}
/**
*
* @param str 需要过滤的字符串
* @return
* @Description:过滤数字以外的字符
*/
public static String filterUnNumber(String str) {
// 只允数字
String regEx = "[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
//替换与模式匹配的所有字符(即非数字的字符将被""替换)
return m.replaceAll("").trim();
}
}
2386

被折叠的 条评论
为什么被折叠?



