java 中关于*号的通配符使用
1>在java中是用’ .*'来代替 ' *' , 用' .' 来匹配 '?'
2>正规式 data.*/.dat 相当于data*.dat
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest
{
private String[] s =
{ "data.dat", "data1.dat", "data2.dat", "data12.dat", "datax.dat",
"dataXYZ.mp3" };
//private static String ex1 = "data.//.dat";
//String str = ""
//private static String ex2 = "data*.*//.*";
public void testRegex(String ex)
{
System.out.println("regex: " + ex);
Pattern p = Pattern.compile(ex);
for (int i = 0; i < s.length; i++)
{
Matcher m = p.matcher(s[i]);
System.out.println(s[i] + ": " + m.matches());
}
System.out.println();
}
public static void main(String[] args)
{
RegexTest test = new RegexTest();
//test.testRegex(ex1);
String ex = "d*.*3";
if("*".equals(ex) || "*.*".equals(ex))
{
ex = ".*//.*";
}else
{
System.out.println("******** 1: " + ex);
if(ex.indexOf("*") != -1)
{
ex = ex.replaceAll("//*", ".*");
}
System.out.println("******** 2: " + ex);
if(ex.lastIndexOf(".") != -1)
{
ex = ex.replaceAll("//.", "//.");
}
}
System.out.println("********: " + ex);
test.testRegex(ex);
}
}