正则表达式定义,语法,参见
https://msdn.microsoft.com/zh-cn/library/d9eze55x%28v=vs.80%29.aspx;
http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
主要符号含义
[ ] 对应一个字符的操作
()对应一组要提取的内容——与matcher方法里的group的方法对应。 group命名——方法组加 ’?<>‘。eg:(?<name>[\s\S]+?) 组名name
^ 在 [ ] 外正则式开头 $结尾 ——不一定要用
+ 前面的字符最少出现一次或多次
* 前面的字符最少出现零次或多次
? 最小匹配
eg: 带匹配字符串: 数据<>库<> ;
正则式:([\s\S]+?)<> 结果:数据
正则式:([\s\S]+)<> 结果:数据<>库
\s 匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。
\S 匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效。
\w 匹配任何字类字符,包括下划线。与“[A-Za-z0-9_]”等效。
\W 与任何非单词字符匹配。“[^A-Za-z0-9_]”等效。
例如:匹配汉字和英文组合
/^[A-Za-z\u4E00-\u9FA5]+$/ ps:/ 正则表达式/ /代表这个是正则式
\u4E00-\u9FA5 表示所有汉字
开头的^表示强制要求字符串开头匹配,一般同结尾的$一起使用
如果不带^,就是非精确匹配,比如某字符串中间有一小段是符合匹配要求的,这时候如果用不带^的表达式是可以匹配通过的,但带^的表达式就匹配不了
但是 如果^在 [ ] 之内, 代表否定的含义
例如/^[^A-Za-z\u4E00-\u9FA5]+$/ 则代表不符合这个正则表达式的字符串
java 中的使用 Pattern类,matcher方法
String str =
"lkjhgf<a herf=\" fdsdadf, \" title=\"韩国和规范\">yfffgfg<a herf=\"gfytffjhhjg\" title=\"预付费更改\">iuiuyuytf<a herf=\"fhgytfddtr\" title=\"了解客户感觉\">uigfg"
;
Pattern p = Pattern.compile(
"title=\"(.+?)\""
);黄色部分为需要匹配的字段
Matcher m = p.matcher(str);
while
(m.find()) {
System.out.println(m.group(
1
));
}