2009-10-16 10 views
0

Je suis un débutant Je suis en train de créer une expression régulière dans notepad ++ pour remplacer tous les href="http://www.reactivemail.com/(any series of charcters)"Regex pour trouver tous les hrefs qui contiennent un chemin mais pas "." (Dot)

essentiellement tout ce que je veux est de mettre un/à la fin de tous les href de mais seulement si elle ne contiennent pas un point par exemple, il est un chemin vers un fichier comme .html

voici donc ce que je veux trouver

href="http://www.reactivemail.com(some path to a directory)"

mais ignorer href="http:www.reactivemail.com(some path).some extension"

et que vous voulez ajouter un/à de href qui ne vont dans un répertoire et manque un/sur la fin

c'est le regex J'utilise:

(href="http:\/\/www\.reactivemail\.com[^\.*.*"*]*) 

et le remplacer est \1/

il trouve ce que je veux parfaitement

seulement pour href avec une extension .file il trouve toujours le chemin et ignore tout après le. au lieu d'ignorer tout parce qu'il contient un point

+0

Que faire si un nom de répertoire contient un point? –

+0

pas de répertoires contiennent un point j'ai essayé votre solution et il ne fonctionne pas car il trouve tout jusqu'à la fin de la ligne par exemple href = "http://www.reactivemail.com/pricing"> prix à la place de juste href = "http://reactivemail.com/pricing mais il y a tout dedans avec un point dedans Je ne serais pas dérangé s'il n'y avait pas 500 ou plus de liens à mettre à jour – ash

Répondre

0

Il est un peu dangereux (voir mon commentaire à votre question), mais vous pouvez essayer la recherche de:

(href="http://www.reactivemail.com/[^."]*[^/])" 

et les remplacer par

\1/" 
+0

Plus précisément: remplacer '(href =" http: \/\/www \ .reactivemail \ .com [^.] * [^ /]) (")' avec '\ 1 /" ' –

0

Essayez ce (http[s]*\://[^\"]+)/([^\."/]+)" et remplacez par \1/\2/". Cela devrait intercepter toutes les URL http et https, mais les dossiers contenant des points leur manqueront.

Questions connexes