2016-07-09 11 views
-2

Ich habe einen BBCode Zitat-Tag, der wie folgt formatiert ist:Parse Zahl in BBCode

[quote=Username;123456] 

Das Trennzeichen ist immer da. Wie kann ich die Ziffern nur mit einem regulären Ausdruck (PHP) abgleichen?

+0

Zunächst einmal bitte moderne Lösungen für BBCode verwenden, empfehle ich meine eigene Bibliothek https://github.com/thunderer/Shortcode. Sie erhalten den gesamten BBCode-Wert, den Sie dann beliebig explodieren lassen können. Gerne, um irgendwelche Fragen zu beantworten. –

Antwort

1

Eine Möglichkeit (unter anderem):

\[[^\d\[\]]+(\d+)\] 

Siehe a demo on regex101.com.


Gegliedert, das sagt:

\[   # match an open bracket 
[^\d\[\]]+ # match anything not brackets or digits 
(\d+)  # capture digits to group $1 
\]   # match a closing bracket 

Ihre Stellen in Gruppe $1 sein wird.

+1

Or [ 'explode (";", trim ("[quote = Benutzername; 123456]", "[]")) [1];'] (http://ideone.com/AM2SAY) –

+0

@ WiktorStribiżew: Von Kurs. Ich würde auch einen anderen Weg gehen, aber OP fragte nach Regex. – Jan