2017-07-08 2 views
0

ich den Link von src atribute durch spezifische IDimg url von id bbcode

Zum Beispiel bekommen Ich habe folgende bbcode tags:

[img alt="" src="http://google.com" id="image"] 
[img src="http://google.com" id="image2" alt=""] 
[img id="image3" src="http://google.com" alt=""] 

Ich habe versucht, mit \[img(?:[^]]+src="(.+?)"[^]]+(?:id|class)="image"|[^]]+(?:id|class)="image"[^]]+src="(.+?)")

aber für die zweites Bild tut es funktionieren

https://regex101.com/r/7owPlM/3

+0

Entfernen Sie das Flag "singleline". – horcrux

+0

@horcrux Ja, das ist das Problem, weil ich eine einzelne Zeile Text habe ... vielleicht kann ich eine
nach jedem] hinzufügen? – Kovi

+0

Oder verwenden Sie einfach '[^]]' anstelle der beiden '.' – horcrux

Antwort

0

Man könnte so etwas wie diese (https://regex101.com/r/SDYM7u/3) versuchen:

\[img\s(?:.*?src="(.*?)".*?)?id="image"(?:.*?src="(.*?)".*?)?[^\]]*] 

Flaggen g und m.Der einzigen Nachteil ist, dass Ihre URL zu finden in diesem Fall müssen Sie sowohl die Capture-Gruppe 1 und 2 überprüfen. Wenn src dem ID-Attribut vorangeht, wird die Übereinstimmung in Gruppe 1 gespeichert, aber wenn das ID-Attribut vor src steht, wird die URL in Gruppe 2 gespeichert.