Pregunta
Tengo un enorme archivo de texto y una lista de urls de Editpad Pro con imágenes en la carpeta raíz.
http://www.othersite.com/image01.jpg
http://www.mysite.com/image01.jpg
http://www.mysite.com/category/image01.jpg
¿Cómo puedo cambiar solo los que tienen imágenes en la raíz usando regexp?
http://www.othersite.com/image01.jpg
http://www.NEW_WEBSITE.com/image01.jpg
http://www.mysite.com/category/image01.jpg
Estoy usando la aplicación en línea RegExr .
Solución
Buscar y reemplazar (sin distinción de mayúsculas y minúsculas, expresión regular):
http://www\.mysite\.com/([^/]*\.(?:jpg|gif|png))
con:
http://www\.NEW_WEBSITE\.com/\1
EDIT
Y sí, esto también volverá a basar archivos como http://www.mysite.com/.jpg
, si existen archivos o directorios de este tipo. Si a alguien no le gusta esto, simplemente reemplace *
con +
- o con {X,}
si su suposición es que < em> un archivo de imagen necesita al menos un nombre de carácter X s etc. etc. - pero realmente , esto probablemente está bastante fuera del alcance de lo que lab72
está tratando de lograr (es decir, no la validación del nombre del archivo de imagen)
Otros consejos
url1.replace(/((https?:\/\/www.?)(\w*?)(.com\/image\d*?\.(png|gif|jpg))/,
"$1newName$3");
Algo como lo anterior debería funcionar. El código está en AS (no compilado aunque: P) Tenga en cuenta que $ 2 coincide con el nombre del sitio que estamos reemplazando con yoursite
.
Reemplazar
http://www\.mysite\.com/image(.*)
con
http://www.newsite.com/image$1
Dicho esto, también podría estar interesado en un editor de texto . Ese applet de flash es realmente horrible. Aún puede usar la misma expresión regular, aunque tendrá que reemplazar el signo de dólar $
con una barra invertida \
.