2010-04-06 5 views
2

J'ai un blog WordPress avec de nombreuses URL que je souhaite remplacer de ceci:.URL recherche regex et remplacer MySQL (dans WordPress)

http://www.oldwebsite.co.il/name/ *** asp

à ceci:

http://www.newwebsite.com/?p= ***

Par exemple, de:

http://oldwebsite.co.il/name/65971.asp

à ceci:

http://www.newwebsite.com/?p=65971

Je crois que le plugin suivant: http://urbangiraffe.com/plugins/search-regex/ fera l'affaire avec regex, mais je cherche la regex correcte à utiliser ici.

J'ai trouvé this stackoverflow thread qui a une tâche similaire, mais comme je ne suis pas trop à l'aise avec regex, j'espérais de l'aide pour ne rien gâcher.

Merci,

Tal

Répondre

2

Rechercher l'expression régulière:

http://oldwebsite\.co\.il/name/(\d+)\.asp 

et le remplacer par:

http://www.newwebsite.com/?p=$1 

En PHP:

$after = preg_replace('%http://oldwebsite\.co\.il/name/(\d+)\.asp%', 'http://www.newwebsite.com/?p=$1', $before); 
+0

Vous pouvez vouloir 'http: // (?: Www \.)? Oldwebsite'. – Kobi

+0

vous devez échapper aux 'backslashes' et aux 'forwardslashes' ou envelopper votre modèle dans | pattern-goes-here | en utilisant || vous n'avez pas à échapper à des caractères. –

+0

Mon code PHP utilise des signes% pour délimiter l'expression rationnelle, donc je n'ai pas besoin d'échapper les barres obliques. Utilisation | délimiter la regex est une mauvaise idée car | est un métacaractère regex. –