我想匹配一個url,但只想選擇部分url。那可能嗎?正則表達式幫助,匹配長字符串,選擇子字符串
IE:網址是這樣的:
http://www.domain.com/link/88cbdgb7fwndkedl/
我正則表達式看起來像這樣:
@"http://www.domain.com/link/([a-zA-Z0-9]+)/"
,我希望只返回的ID,而是它抓住了整個URL 。
有什麼建議嗎?
編輯:使用C#Regex.Matches()
我想匹配一個url,但只想選擇部分url。那可能嗎?正則表達式幫助,匹配長字符串,選擇子字符串
IE:網址是這樣的:
http://www.domain.com/link/88cbdgb7fwndkedl/
我正則表達式看起來像這樣:
@"http://www.domain.com/link/([a-zA-Z0-9]+)/"
,我希望只返回的ID,而是它抓住了整個URL 。
有什麼建議嗎?
編輯:使用C#Regex.Matches()
Match match = Regex.Match(input, @"http://www.domain.com/link/([a-zA-Z0-9]+)/")
string key = match.Groups[1].Value;
因此,是「Group [0]」完全匹配,還是「Group [1 ... etc等]'連續組? – MattoTodd
是的,每種語言都差不多 –
比賽將是整個URL(什麼是正則表達式指定)
你需要提取相應的組。
喜歡的東西:
foreach(Match m in matches){
m.Groups[1];
}
幾乎所有的正則表達式的解決方案,讓你獲得一個組。你會發現在組1
等着你的括號部分如果您無法使用組打擾,那麼你可以使用正向後看:
(?<=http://www.domain.com/link/)[^/]+
但說實話...嘗試使用組。這是一個很好的功能。 :-)
在C#中,它是:
Match match = Regex.Match(input, @"http://www.domain.com/link/([a-zA-Z0-9]+)/");
if (match.Success) {
string key = match.Groups[1].Value;
}
什麼語言?問題不在於你的正則表達式,而可能只是你使用整個比賽而不是捕獲的組。 – Vache
編輯我的回答 – MattoTodd