您的位置:首页 > 编程语言 > Java开发

java 正则表达式 匹配问题

2015-12-15 15:43 274 查看
正则表达式定义,语法,参见
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"
;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: