1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Regex

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von mikluxo, 4 November 2016.

  1. mikluxo

    mikluxo Benutzer

    Hallo.
    Ich habe in der Tabelle in einem Feld folgenden Inhalt:

    1. hier ein Text

    2. hier noch ein Text

    3. und hier noch ein Text

    Also das alles steht in einem Feld mit Zeilenumbrüchen.

    Ich möchte in diesem Inhalt durch einen regulären Ausdruck die Durchnummerierungen (also: "1.", "2." usw. ) finden und diese in einem <b>-Tag einschließen. Ich mache das so:

    preg_replace("/^(\d+)\./", "<b>$0</b>", $zeile['text']);

    Dieser Ausdruck findet aber nur die erste Nummer, also "1.". Die anderen werden nicht angesprochen. Wieso denn? Das Zeichen ^ bedeutet doch, dass die zu suchende Zeichenkette am Absatzanfang sein soll? Aber die anderen Nummern befinden sich doch auch am Absatzanfang. Ich verstehe nicht, warum sie nicht gefunden werden. Was mache ich falsch?

    Vielen Dank.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Das ^ ist nur der erste Zeilenanfang, wenn Du Multiline-Mode willst mußt das auch sagen, und wenn mehr als nur einmal ersetzt werden soll dann aus.

    Code:
    test=*# select regexp_replace(E'1. Zeile 1\n2. zeile 2','^(\d+)\.','<b>\1</b>','gm');
      regexp_replace  
    ------------------
     <b>1</b> Zeile 1+
     <b>2</b> zeile 2
    (1 Zeile)
    
    PostgreSQL, ob das in MySQL auch geht weiß ich nicht.
     
Die Seite wird geladen...
Ähnliche Themen - Regex
  1. Maris
    Antworten:
    31
    Aufrufe:
    3.216

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden