Reguläre Ausdrücke

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

MagMo hat geschrieben:Du solltest dich eventuell mal ein bischen in die Materie einlesen. :grin:
Tue ich ja :(
Aber ich komm ja nicht sehr weit mit sowas :cry:

Am Anfang hatte ich dieses => http://www.php-resource.de/tutorials/read/10/1/

Zwischendurch habe ich auch das von Tekin mal nachgeschlagen aber sehr weit komme ich nicht mit sowas :(
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Also ich lerne immer am Besten in der Praxis. Ich fusch so lange mit sowas herum, bis ich die Lösung habe. Später dann verbessere ich diese Lösung, bis ich es komplett kapiert habe.

Die Page erklärt es eigentlich recht einleuchtend mit Beispielen, oder nicht?
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Ich habe mir das jetzt 3mal durchgelesen und habe immer noch nicht raus wie ich einzelnte Zeichen unabhängig von ihrer Häufigkeit und Stelle ausschliessen kann bzw. auch zulassen und alles andere nicht. :(
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,
fanrpg hat geschrieben:...wie ich einzelnte Zeichen unabhängig von ihrer Häufigkeit und Stelle ausschliessen kann bzw. auch zulassen und alles andere nicht. :(
Beispiel: Der reguläre Ausdruck

Code: Alles auswählen

#\[url\][^a]+\[/url\]#is
trifft auf alle Zeichenfolgen zu die zwischen und eingebettet sind und aus mindestens einem Zeichen besteht und jedes beliebige Zeichen außer dem a oder A enthalten darf. Z.B. folgende Zeichenfolgen stimmen mit dem Ausdruck überein:
bcd

123 456df
Folgendes hingegen nicht:

fifa

Dürfen zwischen und keine Buchstaben stehen, dann verwendest du folgendes:

Code: Alles auswählen

#\[url\][^a-z]+\[/url\]#is
Sollen zwischen und 5 bis 8 Zeichen stehen und diese Zeichen dürfen keine Zahlen sein:

Code: Alles auswählen

#\[url\][^0-9]{5,8}\[/url\]#is
usw.

Wäre eventuell sinnvoll, wenn du mal postets, was du mit dem regulären Ausdruck, den du versuchts zu erstellen, erreichen willst.

Grüße
MagMo
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Danke :)
Jetzt ist mir so einiges klar geworden, so weit weg war ich doch nicht von meiner Vorlösung

EDIT: Noch so als Info dabei habt ihr mir geholfen:

Code: Alles auswählen

function add_bbcode($str)
{
	if( $str )
	{
		$pattern = array();
		$replace = array();
		
		// [b] BBCode
		$pattern[] = '#\[b\](.+?)\[/b\]#is';
		$replace[] = '<strong>\1</strong>';
		
		// [i] BBCode
		$pattern[] = '#\[i\](.+?)\[/i\]#is';
		$replace[] = '<i>\1</i>';
		
		// [u] BBCode
		$pattern[] = '#\[u\](.+?)\[/u\]#is';
		$replace[] = '<u>\1</u>';
		
		// [color:#123456] BBCode
		$pattern[] = '#\[color=(\#[0-9A-F]{6}|[a-z]+)\](.+?)\[/color\]#is';
		$replace[] = '<span style="color:\1 ">\2</span>';
		
		// [url]http:// BBCode
		$pattern[] = '#\[url\](http://|ftp://)([a-z0-9\.:~,_\#%\?\/&=-]+?)\[/url\]#i';
		$replace[] = '<a href="\1\2">\2</a>';
		
		// [url] BBCode
		$pattern[] = '#\[url\]([a-z0-9\.:~,_\#%\?\/&=-]+?)\[/url\]#i';
		$replace[] = '<a href="http://\1">\1</a>';
		
		// [url=http://....] BBCode
		$pattern[] = '#\[url=(http://|ftp://)([a-z0-9\.:~,_\#%\?\/&=-]+?)\]([a-z0-9\.:~,_\#%\?\/&=-]+?)\[/url\]#i';
		$replace[] = '<a href="\1\2">\3</a>';
		
		// [url=] BBCode
		$pattern[] = '#\[url=([a-z0-9\.:~,_\#%\?\/&=-]+?)\]([a-z0-9\.:~,_\#%\?\/&=-]+?)\[/url\]#i';
		$replace[] = '<a href="http://\1">\2</a>';
		
		$str = preg_replace($pattern, $replace, $str);
		
		return $str;
	
	}
}
Vielen lieben Dank euch allen :)
Antworten

Zurück zu „Coding & Technik“