[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • [gelöst] REGEX *text* nach **text**
Seite 1 von 1

[gelöst] REGEX *text* nach **text**

Verfasst: 31. Jul 2013, 17:45
von rkemmere
Hallo zusammen,

ich hasse diese REGEX Sachen :roll:

Ich habe einen Text in der Art:
*Schwerlastkipper / Halbrundmulde, NEU*

* Baujahr: 2013
* zul.GG.: 21.000 kg
* 5.000 mm Kastenlänge

Lieferung und *Besichtigung* nach Absprache! Irrtümer und Tippfehler vorbehalten !
Jetzt muss aber alles was normal per textile fett gemacht wird, mit einem Doppelstern versehen werden.

Also sozusagen alles was so aussieht *text* soll zu **text** werden. Wichtig ist aber das die Aufzählungen mit * Aufzählung weiter vorhanden bleiben.

Kann mir jemand auf die Sprünge helfen?
Danke auf jeden Fall für die Hilfe!

Viele Grüße
Ronny

Re: REGEX *text* nach **text**

Verfasst: 31. Jul 2013, 21:07
von jdlx

Code: Alles auswählen

/^(\*[^\*]+\*)$/m
Zum langsam reinkommen: regex fähigen Editor nehmen.. z.b. Sublimetext.
Zum testen:
http://regexp-tester.mediacix.de/exp/regex/ (ist gelegentlich ausgenockt..)
http://regex.larsolavtorvik.com/

Re: REGEX *text* nach **text**

Verfasst: 31. Jul 2013, 21:59
von Cheffchen
Hallo,

ist nicht

Code: Alles auswählen

preg_match_all('/(\*.+\*)/', '
besser, kommt halt drauf an ob das *Besichtigung* auch greifen soll.

Cheffchen

Re: REGEX *text* nach **text**

Verfasst: 31. Jul 2013, 22:27
von jdlx
Hast recht.. dann evtl. so:

Code: Alles auswählen

preg_replace('/(?<=\*)[^\*\n\r]+(?=\*)/m', '*$0*', $str) 

Re: REGEX *text* nach **text**

Verfasst: 31. Jul 2013, 23:02
von jdlx
K, nochmalige Korrektur.. ;) basierend auf deiner und ner verschärften Vorlage:

Code: Alles auswählen

*Schwerlastkipper / Halbrundmulde, NEU*

* Baujahr: *2013*
* zul.GG.: 21.000 kg
* 5.000 mm Kastenlänge

Lieferung und *Besichtigung* nach *Absprache*! [*Irr*]tümer und Tippfehler vorbehalten ! 

Code: Alles auswählen

preg_replace('/\*([^\s].*?)\*/', '**$1**', $str)
                  ^^^^^  ^
                    |    |.. un-greedy
                    |....... nur wenn kein Leerzeichen nach "*" -> aka list item modifier
Das mit dem Leerzeichen ist keine 100% saubere Methode so, weil es nicht nur am Zeilenanfang matchen würde, aber auf die Schnelle hab ich keine gute multiline - spriche Zeile für Zeile - regex gefunden...

Re: REGEX *text* nach **text**

Verfasst: 1. Aug 2013, 09:15
von rkemmere
Hallo Jan, Hallo Cheffchen,

vielen Dank für die doch ausführlichen Beispiele.

Nach einer Flasche Wein gestern Abend sah es noch mehr nach Zeichenkirmes aus :lol:

Funktioniert aber so auf jeden Fall!