package zhengzebiaodashi;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test
{
//\b元字符代表一个单词的开始或者结束
//.代表任意的字符
//*元字符,前面的字符连续重复使用任意次
// private static String demo = "\bhi\b.*\bLucy\b";
//0开头
//\d数字
//-不是元字符,只匹配它本身——连字符
// private static String tel = "0\d{2}-\d{8}";
//\w匹配字母或数字或下划线或汉字
//\s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等
// \d+匹配1个或更多连续的数字
//^,$都匹配一个位置
// private static String qq = "^\d{5,8}$";
//字符转义 \.=. \* = *
//[aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!)。
//|把不同的规则分隔开 ,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。
//()分组;
// public static String demo = "[01]?\\d?\\d";
//取反
/**
* \W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
*/
// public static String demo = "[^abcd][^a]";
//(?=exp)它断言自身出现的位置的后面能匹配表达式exp
//(?<=exp)也叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp
/**
* @param args
*/
public static void main(String[] args)
{
// String test = "eb";
// Pattern pa = Pattern.compile(demo);
// Matcher ma = pa.matcher(test);
// if (ma.matches())
// {
// System.out.println("match ok");
// }
// else
// {
// System.out.println("math no");
// }
Pattern p = null;
Matcher m = null;
p=Pattern.compile("_|[a-zA-Z]{0,1}([a-zA-Z0-9_])*");
m=p.matcher("9");
if (m.matches())
{
System.out.println("match ok");
}
else
{
System.out.println("math no");
}
}
}