2012-06-12 3 views
1

Я пытаюсь извлечь идентификатор видео из URL YouTube, используя следующие:Scala регулярное выражение ID видео YouTube

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

Смежные вопросы