gpt4 book ai didi

java - find 是带有开始和结束字符的正则表达式

转载 作者:行者123 更新时间:2023-12-01 12:30:55 27 4
gpt4 key购买 nike

在这个表达式中,我想提取以 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"

最佳答案

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

demo here

PS:在demo中,查看RHS上的匹配信息即可知道匹配到了什么。

说明:

(?<=\[a href=)(.*?)\] ?<=是正向后查找,即,仅当内容前面是 [a href= 时才会匹配内容。 。

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

此外,我们不应包含 ]在输出中,所以我们使用 (.*?)\]捕获 [a herf= 之后的所有内容和之前 ]

? .* 之后的量词做到了lazy (非贪婪),使其匹配第一个 ]而不是最后一个]

关于java - find 是带有开始和结束字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25928044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com