日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

href 一个正则表达式的解析 ? 号解析

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 href 一个正则表达式的解析 ? 号解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

ArrayList?linkLocal????=?new?ArrayList();?
ArrayList?linkExternal?
=?new?ArrayList();?
//?Dodgy?Regex?will?find?*some*?links?
foreach?(Match?match?in?Regex.Matches(htmlData?
????,?
@"(?<=<(a|area)\s+href="").*?(?=""\s*/?>)"?
????,?RegexOptions.IgnoreCase
|RegexOptions.ExplicitCapture))?{?

????
//?Regex?matches?from?opening?"quote
????link?=?match.Value;
????
//?find?first?space?(ie?no?spaces?in?Url)
????int?spacePos?=?link.IndexOf('?');
????
//?or?first?closing?quote?(NO?single?quotes)?
????int?quotePos?=?link.IndexOf('"');
????
int?chopPos?=?(quotePos<spacePos?quotePos:spacePos);
????
if?(chopPos?>?0)?{
????
//?chopPos?if?quote?or?space?first?the?at?URL?end
????????link?=?link.Substring(0,chopPos);
????}
?
????
if?(?(link.Length?>?8)?&&?
?????????(link.Substring(
0,?7).ToLower()?==?"http://")?)?{
????????
//?Assumes?all?links?beginning?with?http://?are?_external_?
????????linkExternal.Add(link)?;?
????}
?else?{?
????????
//?otherwise?they're?"relative"/internal?links
????????
//?so?we?concatenate?the?base?URL?
????????link?=?startingUrl?+?link;?
????????linkLocal.Add(link);?
????}
?
}

?

.*? 非貪婪或最小匹配.
?<= 正向引用不包含在匹配值里
?= 同上.. (不過上面的哪個沒有了<號就會造成不同的結果了)
"" 因為前面加了個@ 所以這邊的""變成了"的意思.
(a|area) 其它的任意一個

RegexOptions.ExplicitCapture 指得沒有命名的不能捕獲..其它?<=和?=以經代替了它的作用了

另一種方法的捕獄.括號加命名 (?<banyi>.*?)到時候就可以match.Groups["banyi"].Value這種形式來獲得了 Replace的時候也可以指定的
?的另一個作用就是 匹配0次或一次了 +號是一次或多次*號是0次或多次

轉載于:https://www.cnblogs.com/lovebanyi/archive/2005/10/29/264478.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的href 一个正则表达式的解析 ? 号解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。