2011-01-17 15 views
15

posibles duplicados:
Regex to match URL
regex to remove the webpage part of a url in rubyRubí Expresión regular para que coincida con una dirección URL

Estoy en busca de una expresión regular para analizar todas las direcciones URL en un archivo.
intenté muchas de las expresiones regulares que obtuve después de googlear, pero falla en uno u otro caso. Mi idea es escribir una que compruebe la presencia de http o https en el begening y coincidirá con todo hasta que vea un espacio en blanco.
alguna idea?
NOTA: no es necesario analizar la URL, pero borrar todas las URL de un archivo o al menos hacerlo ilegible.

+0

P.S .: ¿dónde ve rieles aquí? Borro esta etiqueta ¿Conoces la diferencia entre Ruby y Rails? – Nakilon

Respuesta

18

Puede probar esto:

/https?:\/\/[\S]+/ 

El \S significa cualquiera no está en blanco.

(Rubular)

+2

¿Eso es realmente un uri regex? Eso es solo buscar cualquier cadena que comience con http (s) ... que no es un uri. – Mohamad

51

La librería estándar URI proporciona URI.regexp que es la expresión regular para la cadena URL.

require 'uri' 
string.scan(URI.regexp) 

http://ruby-doc.org/stdlib/libdoc/uri/rdoc/index.html

+8

NB también hay un método URI.extract que básicamente analiza todas las URLs de una cadena. Muy útil. – rogerdpack

+0

variable local indefinida o método 'cadena 'para main: Object (NameError) ¿Quiso decir? String –

+0

URI.regexp parece coincidir con cadenas que no son realmente URL válidas, como 'http: // x', o simplemente' http: '. –

Cuestiones relacionadas