java 正则式

来源:互联网 发布:守望先锋查看队友数据 编辑:程序博客网 时间:2024/05/20 13:39

正则表达式定义,语法,参见

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:(?[\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 = "this is a example <a herf=\" this is a example, \" title=\"韩国和规范\">this is a example 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));    }
0 0