ID de video de youtube de expresiones regulares de Scala

Estoy tratando de extraer la identificación del video de una URL de youtube usando lo siguiente:

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

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

Lamentablemente esto no funciona... ¿Alguna idea? Muchas gracias

preguntado el 12 de junio de 12 a las 18:06

1 Respuestas

¿No se supone que eso es así?

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")
}

Entonces obtendrás IQJ13vFYOU8 Parte sin opciones.

Respondido el 12 de junio de 12 a las 18:06

eso lo hace, raro, recuerdo que en F# la expresión regular no tenía que estar "completa". De todas formas muchas gracias - jlezard

Esa es la diferencia entre encontrar y emparejar. La coincidencia debe coincidir con toda la cadena. - user482745

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.