2016-04-08 4 views
0

Hallo Leute Ich möchte den Bildnamen aus einer Zeile in HTML erhalten. Ich mache in PHP zum Beispiel ich diese Zeilen habenRegex, nur Bildname PHP

<img src="index_files/bottle2.jpg" name="product ds Grodsdwth" class="pullleft"> 

<img title="" src="index_files/ss-button.png" class="step-btn" alt=""></a> 

Ich möchte jus die bottle2.jpg und ss-button.png und ersetzen Sie es mit {# CDNPath #} img/imagename zu bekommen bekommen dieses Ergebnis

<img title="" src="{#CDNPath#}img/ss-button.png" class="step-btn" alt=""></a> 

ich habe diese regex, aber es funktioniert nicht:

([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif)) 

ich bin verwirrt mit dieser entkam und p atters bitte ich dankbar, mit euch

+0

So etwas wie das? https://regex101.com/r/oA0rV6/1 –

Antwort

1

Versuchen Sie, diese RegEx mit:

(<img.*?src=")((?:\w+\/)+?)([\w-]+\.(?:jpg|jpeg|png|gif))" 
  • The 1st Capture-Gruppe speichert die Öffnung <img und andere Attribute, dann die src="
  • Die 2nd Aufnahme Die Gruppe speichert die Bildordner, dh index_files/ oder index_files/a/
  • Die 3rd Capture-Gruppe speichert die Bildname

Ersetzen durch:

$1{#CDNPath#}img/$3" 

Live Demo on Regex101

+0

Aweasome nur ein Zweifel am Ende des Tags src seine fehlende one "isnt? –

+1

@MarcoPerez Ja, nur ein Hinzufügen eines' "' bis zum Ende der Ersetzung (oder verwende ein positives Lookahead - ersetze das letzte '" 'in der RegEx mit' (? = ")', und behalte dein Ersetzen gleich. Ich habe die Antwort aktualisiert – Druzion

+0

Ja Männer Sicher !! Vielen Dank Es ist schwierig für mich Regex Ich suche nach einem Tutorial einige Ausdrücke sind so schwer für mich –