【发布时间】:2018-01-02 06:51:56
【问题描述】:
我尝试使用正则表达式获取图片网址,我的代码如下。
string IMG_REX_PATTERN = @"<[Ii][Mm][Gg][^>]*src\s*=\s*[\""\']?(?<IMAGE_URL>[^""'>\s]*)[\""\']?[^>]*>";
Match match = Regex.Match(result[i]["N_Dext5EditorField"].ToString(), IMG_REX_PATTERN, RegexOptions.IgnoreCase);
string src = string.Empty;
if (match.Length > 0)
{
//portalUrl = https://test.beta.co.kr
string portalUrl = DevelopmentHelper.GetPortalUrl();
src = match.Groups[1].Value.Replace(portalUrl, "");
}
else
{
src = "";
}
但是,有时 src 包含这样的端口号。
src = :443/dext5editordata/2017/12/20171228_191217524_37634.png
我想得到这样的url(不包括端口号)
src = /dext5editordata/2017/12/20171228_191217524_37634.png
我认为简单的方法是portalUrl + ":443",但端口号有时不同。
如何修复我的代码?请帮帮我。
【问题讨论】:
-
为什么不根据
:拆分url 或者检查它是否包含:然后使用IndexOf() 作为第一个/ -
为什么不直接捕获完整的 URL 并将其放入
Uri类? -
约翰,你是对的!