在这个表达式中,我想提取以href =开头的字符串,直到找到结束括号]。我想找到字符串start,href = until整个表达式的右括号。我该怎么做
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"
答案 0 :(得分:1)
你可以使用这样的正则表达式:(?<=\[a href=)(.*?)\]
PS:在演示中,检查RHS上的匹配信息以了解匹配的内容。
说明:
(?<=\[a href=)(.*?)\]
?<=
是积极的后视,即只有在[a href=
之前才会匹配内容。
接下来,我们必须逃避[
,因为它们在正则表达式中具有特殊含义。这同样适用于]
。
此外,我们不应在输出中包含]
,因此我们使用(.*?)\]
来捕获[a herf=
之后和]
之前的所有内容。
?
之后的.*
量词使其成为lazy
(非贪婪),以便它与第一个]
而不是最后一个]
匹配。