2014-09-19 110 views
0

在此表达我想提取与HREF开始字符串=直到它找到右括号。我想找到字符串开始与href =直到右括号为整个表达式。如何做到这一点查找是正则表达式与起始和结束字符

String s= [a href="http://myimagefactorycollection.files.wordpress.com/2014/09/ 
    2db83fcf95c5fc036a00abfb412f50e4.jpg"][a href="https://myimagefactorycollection.files.wordpress.com/2014/09/0e397a47f88e18f8fb91d17db18c7edd-copy.jpg"] 

The output should be 
"http://myimagefactorycollection.files.wordpress.com/2014/09/ 
    2db83fcf95c5fc036a00abfb412f50e4.jpg" 
"https://myimagefactorycollection.files.wordpress.com/2014/09/0e397a47f88e18f8fb91d17db18c7edd-copy.jpg" 

回答

1

您可以使用这样的正则表达式:(?<=\[a href=)(.*?)\]

demo here

PS:在演示中,检查RHS上的比赛信息知道已匹配。

说明:

(?<=\[a href=)(.*?)\] ?<=为正向后看,即,内容将只有当他们被[a href= preceeded匹配。

接下来,我们要逃避[,因为它们在正则表达式的特殊含义。这同样适用于]

而且,我们不应该在输出中包含的],所以我们使用(.*?)\][a herf=]之前,捕捉一切。

.*?量词使它lazy(非贪婪),以便它匹配的第一个]而不是最后]

+0

u能请解释一下这是什么意思新建正则表达式 – 2014-09-19 07:03:45

+0

@RameshRaju - 完成。检查我的编辑。 – TheLostMind 2014-09-19 07:09:39

+0

模式GetCddata = Pattern.compile( “(<= \ [A HREF =)(*)\。?]?”);它说无效的转义序列\ B \牛逼\ n \˚F\ r \” \” \\ – 2014-09-19 07:18:35

相关问题