我有必要解析和转换某种 URL 部分,我现在是这样做的:
Regex s_re = new Regex(@"^/(lang_([^/]*)/)?([^/]*)([^\?]*)\??(.*)$", RegexOptions.IgnoreCase);
const string Url = "...";
MatchCollection matches = s_re.Matches(Url);
if(matches.Count==0) return false;//can't find matches
string strLang = s_re.Replace(Url, @"$2");
string strAddr = s_re.Replace(Url, @"$3");
我是否正确理解在这种情况下我的 URL 被解析了 3 次(原始匹配和每次替换)。在最好的情况下,它应该只解析一次,并且应该使用结果。
我怀疑我应该使用其他东西,而不是跟随“替换”的调用,但找不到确切的东西。
您能否提一些建议?
谢谢。