Es necesario utilizar paréntesis de captura para la sub-expresión coincide:
match(/\href=".*?(\/pdf\/.*?\.pdf)/)[1];
Partido devolverá un array con todo el partido en el índice 0, todas las capturas de expresión sub serán añadidos a la matriz en el orden en que emparejado En este caso, el índice 1
contiene la sección correspondiente \/pdf\/.*?\.pdf
.
Pruebe y haga que su expresión regular sea más específica que solo
.*?
si coincide a grandes rasgos. Por ejemplo:
match(/\href="([^"]+?\/pdf\/[^\.]+?\.pdf)"/)[1];
[^"]+?
coincidirá con pereza una cadena de caracteres que no contiene el carácter de comillas dobles. Esto limitará el partido a su estancia dentro de las comillas, por lo que el partido no será demasiado amplia en la siguiente secuencia, por ejemplo:
<a href="someurl/somepage.html">Test</a><a href="dir/pdf/file.pdf">Some PDF</a>
Esto me da /pdf/filename.pdf, pero necesito conseguir < a href = "somedirecrories/pdf/filename.pdf" pero estoy quitando el enlace del código html y hay referencias a otros href más arriba en el documento - Así que creo que necesito algún tipo de coincidencia de patrón –
@Gerald: Lo siento, No me di cuenta de que es lo que querías decir. He actualizado mi respuesta. –
Perfecto exactamente lo que estaba buscando - gracias Andy –