JavaSE基础:正则表达式
2013-01-06 18:09
525 查看
-------
android培训、java培训、期待与您交流! ----------
正则表达式用来操作字符串数据。
字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
捕获组(.),引用\\1,引用上一个参数的组$1
常见操作:
1、匹配
String str = "asdfg";
String regex = "\w{5}";
Boolean b = str.matchs(regex);//---匹配结果b为true
2、切割
String regex = "d";
String[] strs = str.split(regex);
3、替换
String tel = "15800001111";//158****1111;
tel = tel.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
4、查找
String str = "da jia hao,ming tian bu fang jia!";
String regex = "\\b[a-z]{3}\\b";
//1,将正则封装成对象。
Pattern p = Pattern.compile(regex);
//2, 通过正则对象获取匹配器对象。
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group());//获取匹配的子序列
System.out.println(m.start()+":"+m.end());
}
获取网页中邮箱程序
-------
android培训、java培训、期待与您交流! ----------
android培训、java培训、期待与您交流! ----------
正则表达式用来操作字符串数据。
字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
捕获组(.),引用\\1,引用上一个参数的组$1
常见操作:
1、匹配
String str = "asdfg";
String regex = "\w{5}";
Boolean b = str.matchs(regex);//---匹配结果b为true
2、切割
String regex = "d";
String[] strs = str.split(regex);
3、替换
String tel = "15800001111";//158****1111;
tel = tel.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
4、查找
String str = "da jia hao,ming tian bu fang jia!";
String regex = "\\b[a-z]{3}\\b";
//1,将正则封装成对象。
Pattern p = Pattern.compile(regex);
//2, 通过正则对象获取匹配器对象。
Matcher m = p.matcher(str);
while(m.find()){
System.out.println(m.group());//获取匹配的子序列
System.out.println(m.start()+":"+m.end());
}
获取网页中邮箱程序
public static List<String> getMailsByWeb() throws IOException { URL url = new URL("http://192.168.1.66:8080/myweb/mail.html"); BufferedReader bufIn = new BufferedReader(new InputStreamReader(url.openStream())); //2,对读取的数据进行规则的匹配。从中获取符合规则的数据. String mail_regex = "\\w+@\\w+(\\.\\w+)+"; List<String> list = new ArrayList<String>(); Pattern p = Pattern.compile(mail_regex); String line = null; while((line=bufIn.readLine())!=null){ Matcher m = p.matcher(line); while(m.find()){ //3,将符合规则的数据存储到集合中。 list.add(m.group()); } } return list; }
-------
android培训、java培训、期待与您交流! ----------
相关文章推荐
- JavaSe基础XX22——正则表达式
- 黑马程序员_JavaSE基础知识总结十九:正则表达式初步
- 黑马程序员——javase基础--正则表达式
- JavaSE基础正则表达式
- Java基础学习笔记十三 常用API之正则表达式、Date、DateFormat、Calendar
- 正则表达式基础知识
- C#正则表达式基础 [a-z] 验证一个字符是否是小写字母
- C#正则表达式基础 {3} 检测字符串是否存在 3个连续的数字
- 正则表达式基础
- grep与正则表达式01-基础知识
- 正则表达式-基础篇
- JavaScript基础之七——JavaScript中的正则表达式
- Linux基础 用户管理 权限管理 正则表达式
- 正则表达式的基础语法
- 黑马程序员----JAVA基础之正则表达式
- python 正则表达式 re模块基础
- 基础正则表达式
- 正则表达式基础知识
- 正则表达式(基础)元字符含义
- 基础解析正则表达式