是什么:一句话,正则表达式是对字符串执行模式匹配的技术。
从一段字符串中提取出所有英文单词、数字、字母和数字。
如果采用传统方法:将字符串的所有字符分割成单个,根据ASCII码判断,在一定范围内就是字母,每获得一个字母就拼接。
String content = "根据PC-Meter1996年的调查,平均每个互联网用户每次访问的环球网的网站有5.6个," +
"每次查看的网页20.8个,而平均阅读每一个网页所需要的时间大约1.4分钟,平均每次上网阅读环球网页的时间大约28分钟。" +
"作为这样一种具有私人和公共的双重功用的传媒,互联网效用的实现从根本上还是依赖于参与者," +
"也就是用户的增加。而这一特性又是和网络的性质是完全一致的。";
//1.先创建一个Pattern对象
// Pattern pattern = Pattern.compile("[a-zA-Z]");
// Pattern pattern = Pattern.compile("[0-9]+");
Pattern pattern = Pattern.compile ("[a-zA-Z]|[0-9]+");
//2.创建一个匹配器对象matcher,这个matcher按照指定的pattern,到content中去匹配
Matcher matcher = pattern.matcher(content);
//3.循环匹配,find的返回值是true/false,即找到就返回true
while(matcher.find()){
System.out.println(matcher.group(0));
}
元字符
1."?"匹配0或1个字符
"used?"可以同时匹配use和used
2."*"匹配0个或多个字符
"ab*c"
ac
abc
abbc
adc---匹配失败,a和c中间只能是0或多个b
3."+"匹配至少出现1次的字符
"ab+c"
ac----匹配失败,a和c中间必须要有c,且至少一个
abc
abbc
4."."匹配除了换行符以外的任何的字符
5."{}"字符频度限定
"ab{2,4}c"
ac----匹配失败,a和c中间必须要有c,且必须有2~4个
abc----匹配失败,a和c中间必须要有c,且必须有2~4个
abbc
"ab{3}c"
ac----匹配失败,a和c中间必须要有c,且必须3个
abbc----匹配失败,a和c中间必须要有c,且必须有3个
abbbc
6."()"内的字符视为一个整体去匹配
"(ab)+c"----------------ab视为一个整个,至少有1个ab,而后接c
abc----
ababc
abbbc-----匹配失败,"ab"要么接ab,要么接c
7."|"匹配符号左右任一字符
"a (cat|dog)"----------a后必须接空格,空格后必须接cat/dog之一
a cat
a dog
a bird-----匹配失败
8."[]"要匹配的字符只能取自[]之内
"[abc]+"--------任意的字符串,不要求连续,只要a,b,c都至少存在一次就匹配成功
abc
aabbcc
aabb-----匹配失败
"[a-z]"------匹配所有的小写英文字符
"[a-zA-Z]"------匹配所有的大写和小写英文字符
"[a-zA-Z0-9]"------匹配所有的大写和小写英文字符和数字
9.“^”和“[]”搭配使用,表示匹配排除了”[]"中的字符后剩余的所有字符
换行符也是符.
10."^“不与”[]"搭配使用,
通配符
元字符大多以反斜杠开头。
1.“\d”=“[0-9]”
2."\w"匹配所有的单词,数字,下划线