http://blog.donews.com/maverick/archive/2005/11/28/641232.aspx这个链接是关于贪婪和不贪婪的
http://deerchao.net/tutorials/regex/regex.htm#mission 30分钟入手正则表达式
总结以下:其直接匹配对应的字符,[]是在里面放一个字符或多个字符,但其是应该是匹配的一个,即匹配一个字符。用{}是代表数量,用()是代表一个完整的单词,暂时就发现这么一点,以后再补充
我写了两个类以供参考
类1:
package com.wl.regex;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestFIle {
public static void main(String[] args) throws Exception
{
String filepath="/home/hadoop/result.log";
File file=new File(filepath);
FileReader filereader=new FileReader(file);
BufferedReader reader=new BufferedReader(filereader);
String regex=".*getPromotionProductPage.*";
Pattern pattern=Pattern.compile(regex);
Matcher matcher;
String temp=null;
while((temp=reader.readLine())!=null)
{
matcher=pattern.matcher(temp);
if(matcher.matches())
{
System.out.println("匹配 "+temp);
}
}
}
}
类2:
package com.wl.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args)
{
String regex=".*what.*you.*";
String input[]={
"what is you want ?",
"w",
"a",
"what",
};
Pattern pattern=Pattern.compile(regex);
Matcher matcher;
for(int i=0;i<input.length;i++)
{
matcher=pattern.matcher(input[i]);
if(matcher.matches())
{
System.out.println("匹配 "+input[i]);
}
else
{
System.out.println("不匹配 "+input[i]);
}
}
}
}
类3:
package com.wl.regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args)
{
String regex=".*(what ){2,}.*";
String input[]={
"what what what want ?",
"whatwhatwhatwant ?",
"w",
"a",
"what",
};
Pattern pattern=Pattern.compile(regex);
Matcher matcher;
for(int i=0;i<input.length;i++)
{
matcher=pattern.matcher(input[i]);
if(matcher.matches())
{
System.out.println("匹配 "+input[i]);
}
else
{
System.out.println("不匹配 "+input[i]);
}
}
}
}