package 正则表达式;
import java.util.Arrays;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*字符的取值范围
1.[abc] : 表示可能是a,可能是b,也可能是c。
2.[^abc]: 表示不是a,b,c中的任意一个
3.[a-zA-Z]: 表示是英文字母
4.[0-9]:表示是数字
5.[a-e[p]]:并集
6.[a-e&&[b-c]]:交集
简洁的字符表示
.:匹配任意的字符
\d:表示数字
\D:表示非数字
\s:表示由空字符组成,[ \t\n\r\x\f]
\S:表示由非空字符组成,[^\s]
\w:表示字母、数字、下划线,[a-zA-Z0-9_]
\W:表示不是由字母、数字、下划线组成
数量表达式
1.?: 表示出现0次或1次
2.+: 表示出现1次或多次
3.*: 表示出现0次、1次或多次
4.{n}:表示出现n次
5.{n,m}:表示出现n~m次
6.{n,}:表示出现n次或n次以上
逻辑表达式
1.XY: 表示X后面跟着Y,这里X和Y分别是正则表达式的一部分
2.X|Y:表示X或Y,比如"food|f"匹配的是foo(d或f),而"(food)|f"匹配的是food或f
3.(X):子表达式,将X看做是一个整体
*/
public class zhenze {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Pattern p=Pattern.compile("a*b");
Matcher m=p.matcher("aaaab");
boolean b=m.matches();
System.out.println(b);
System.out.println("aaab".matches("a*b"));
System.out.println("b".matches("[^ac]"));
System.out.println("a".matches("[a-e[f]]"));
System.out.println(".".matches("\\."));//真实的.
System.out.println("abc".matches("\\w+"));
System.out.println("8".matches("\\d?"));//0 1
System.out.println("81".matches("\\d+"));// 0 n
System.out.println("8123".matches("\\d*"));//0 n
System.out.println("8123".matches("\\d{4}"));//表示出现n次
System.out.println("812".matches("\\d{0,10}"));//表示出现n~m次
System.out.println("8123".matches("\\d{1,}"));//表示出现n次或n次以上
System.out.println("gad".matches("ad"));
//matches 全局匹配
//创建指定匹配规则的模型
Pattern pattern = Pattern.compile("ab([1-8]*)f");
//创建匹配器
Matcher matcher = pattern.matcher("ab5625836f");
if(matcher.matches())
{
System.out.println(matcher.start() + " " + matcher.end() + " " + matcher.group());
}
else
{
System.out.println("没有匹配到!");
}
//find可以匹配多组
//创建指定匹配规则的模型
Pattern pattern1 = Pattern.compile("ab([1-8]*)f");
//创建匹配器
Matcher matcher1 = pattern1.matcher("ab2fdsdfdfab348fdfab2333fddd");
int count = 1;
while (matcher1.find()) {
System.out.println("第" + count + "组: " + matcher1.start() + " " + matcher1.end() + " " + matcher1.group());
count ++;
};
String string="you are a student.";
String []strings=string.split("[\\s\\d,.]");//默认逗号分割
System.out.println(Arrays.toString(strings));
StringTokenizer st=new StringTokenizer(string," .,");//默认空格,也可以加 ,.
System.out.println(st.countTokens());//计算分开的个数
while(st.hasMoreTokens())
System.out.println(st.nextToken());
}
}
03-25
07-19
07-19
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交