日期:2014-05-18  浏览次数:20830 次

有关正则表达式的几个问题!
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
中间[-+.]是什么意思?(15分)

关于       .*?
*和?怎么修饰同一个.   呢?这样有什么意思??(15分)

有谁能看懂这个正则?(? <=\\d)\\d{3}\\b
帮忙解释一下(55分)

为什么很多时候都用的是\\而不是\   ?(15分)

------解决方案--------------------
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
中间[-+.]是什么意思?(15分)
匹配 "- ", "+ "号和任意字符中的一个

关于 .*?
*和?怎么修饰同一个. 呢?这样有什么意思??(15分)
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo ", 'o+? ' 将匹配单个 "o ",而 'o+ ' 将匹配所有 'o '。

为什么很多时候都用的是\\而不是\ ?(15分)
根据 Java Language Specification 的要求,Java 源代码的字符串中的反斜线被解释为 Unicode 转义或其他字符转义。因此必须在字符串字面值中使用两个反斜线,表示正则表达式受到保护,不被 Java 字节码编译器解释。例如,当解释为正则表达式时,字符串字面值 "\b " 与单个退格字符匹配,而 "\\b " 与单词边界匹配。字符串字面值 "\(hello\) " 是非法的,将导致编译时错误;要与字符串 (hello) 匹配,必须使用字符串字面值 "\\(hello\\) "。
------解决方案--------------------
关注