日期:2014-05-20  浏览次数:20688 次

解释一个正则表达式,尽量说的详细一点
String     patternString   = " <a\\s+href\\s*=\\s*(\ "[^\ "]*\ "|[^\\s> ])\\s*> "
请高手给详细说一下这个正则表达式的意思。谢谢

------解决方案--------------------
<a + 一个以上空白字符 + href + 零个或多个空白字符 + = + 零个或多个空白字符 + (双引号 + 零个或多个不是双引号的任意字符 + 双引号) 或者 (任意多个非空白字符) + 零个或多个空白字符 + >

用来匹配超链接的
------解决方案--------------------
我上面写的+是指连接符,不是正则
------解决方案--------------------
<a 匹配 <a
\\s+ 匹配 一个以上空白字符
href 匹配 href
\\s* 匹配 零个或多个空白字符
= 匹配 =
\\s* 匹配 零个或多个空白字符
(\ "[^\ "]*\ "|[^\\s> ]) 括号里是捕获组,匹配 双引号 加 零个或多个不是双引号的任意字符 加 双引号) 或者 任意多个非空白字符 加 >
\\s* 零个或多个空白字符
> 匹配>
------解决方案--------------------
\s:表示空白字符,如指标符或换行符
+:表示出现一次或多次
*:表示出现0次或一次以上(包含一次)
^:表示输入的开始
[]:表示字符类匹配可以是[]内的任意字符如:[abcd]*将是只包含a,b,c,d的任意字符
在html中连接的语法如下
<a href= " "> </a>
用正则表达试从新编写html里面连接的字符串形式如下
String s= " <a\\s+href\\s*=\\s*(\ "[^\ "]*\ "|[^\\s> ])\\s*> "
为什么回出现\\s,因为第一个\是转意字符,意思是将\s转意成为正则表达式的\s而不是字符串形式的\s