2012-06-12 80 views
1

我試圖使用提取自YouTube網址視頻ID如下:斯卡拉正則表達式的YouTube視頻ID

val YoutubeRegex = """v=([^&]+)""".r 

    "v=IQJ13vFYOU8&feature=g-all-lik" match { 
    case YoutubeRegex(videoId) => videoId 
    case _ => throw new NoSuchFieldError("impossible to find youtube Id") 
    } 

Saddly這不工作...任何想法?非常感謝

回答

2

是不是應該這樣?

val YoutubeRegex = """v=([^&]+).*""".r // need to specify that there could be remainder 

"v=IQJ13vFYOU8&feature=g-all-lik" match { 
    case YoutubeRegex(videoId) => videoId 
    case _ => throw new NoSuchFieldError("impossible to find youtube Id") 
} 

所以你會得到IQJ13vFYOU8部分,而不選擇。

+0

這樣做,奇怪我在F#中記住正則表達式不一定是「完整的」。在任何情況下多謝 – jlezard

+0

這是查找和匹配之間的區別。匹配應匹配整個字符串。 – user482745

相關問題