我有这样的字符串:
<a href="https://host-test.com/create?userName=test3&user-mail=myemail@gmail.com&id=14b72820-3855-4f2b-9a39-543ced6784a0&downloadurl=https://host-test.com:443/123/rest/tmp-z7vvymo3wmfzke/vfs/v2/downloadzip/&projectid=d29ya3NwYWNleXFpYXlwZjgwb2sxNDA2MjovY3JlYXRlQWNj:createAcc;" style="font-family:Myriad Pro,arial,tahoma,serif;color:#fff;font-size:14px;text-decoration:none;font-weight:bold" title="Confirm tenant creation" target="_blank"> <div style="font-family:'Lucida Grande',sans-serif;border-radius:5px;width:120px;min-height:40px;line-height:40px;border:1px solid #577e15;color:#fff;text-align:center;background:#e77431;margin:15px 0 15px"> Confirm </div> </a>
而且我只需要使用regexp的href值提取:
https://host-test.com/create?userName=test3&user-mail=myemail@gmail.com&id=14b72820-3855-4f2b-9a39-543ced6784a0&downloadurl=https://host-test.com:443/123/rest/tmp-z7vvymo3wmfzke/vfs/v2/downloadzip/&projectid=d29ya3NwYWNleXFpYXlwZjgwb2sxNDA2MjovY3JlYXRlQWNj:createAcc;
每次的href值也可以不同,可以更长或更短
myString.replaceFirst(myString, "^<a\\s+href\\s*=\\s*\"([^\"]+)\".*", , "$1");
假设myString包含带有a元素的字符串。
a
由于href属性不能嵌套,因此应该没问题,并且不需要完整的HTML解析器。一个限制是它只能在双引号中找到href属性。