Hallo, lieber Forumbenutzer. Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen Möglichkeiten der Kommunikation ist das Forum ein wenig eingeschlafen und weniger Nutzer benutzen das Forum aktiv (trotzdem lohnt es sich evtl. hier nach Lösungen zu suchen oder seine Frage zu stellen).

Wir empfehlen, für deine Fragen/Probleme aktuell (zusätzlich) Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
Benutzeravatar
rkemmere
Beiträge: 486
Registriert: 6. Feb 2007, 17:47
Kontaktdaten: Website

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

31. Jul 2013, 17:45

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
Zuletzt geändert von rkemmere am 1. Aug 2013, 09:16, insgesamt 1-mal geändert.

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

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

31. Jul 2013, 21:07

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/
vg, Jan

Benutzeravatar
Cheffchen
Beiträge: 1809
Registriert: 3. Mär 2009, 13:51
Wohnort: Berlin
Kontaktdaten: Website

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

31. Jul 2013, 21:59

Hallo,

ist nicht

Code: Alles auswählen

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

Cheffchen

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

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

31. Jul 2013, 22:27

Hast recht.. dann evtl. so:

Code: Alles auswählen

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

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

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

31. Jul 2013, 23:02

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...
vg, Jan

Benutzeravatar
rkemmere
Beiträge: 486
Registriert: 6. Feb 2007, 17:47
Kontaktdaten: Website

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

1. Aug 2013, 09:15

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!

Zurück zu „Sonstiges“