Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » Sonstige Sprachen » Regulärer Ausdruck alle Kommas außerhalb von Klammern    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
DingsDaBums
Mitglied
Exzellenter User


Dabei seit: 12.09.2010
Herkunft: keine Angabe
Posts: 2364
     Regulärer Ausdruck alle Kommas außerhalb von Klammern Zitat | Bearbeiten

Moin zusammen!

Weiß jemand zufällig, wie ich mit einem möglich einfachen Regulären Ausdruck alle Kommas erhalte, die nicht in geschlossenen Klammern stehen?

Ein Beispiel:
(Ein Text, noch ein) Text
Ein Text, noch ein Text
(Ein, Text), noch ein Text

Also nur die roten.

Ich habe schon das ein oder andere versucht, aber das wurden dann recht komplexe Ausdrücke... Und ich habe das Gefühl, dass es irgendwie einigermaßen einfach möglich sein müsste


Schau mal bei meinem Projekt vorbei. Vielleicht ist das ja was für dich MyStartPanel - Deine persönliche Startseite mit deinen Favoriten
Auf der Suche nach einem guten Vokabeltrainer? Vokabeltrainer Cramfire - Schnell und effektiv Vokabeln lernen
03.06.2016, 19:01 Profil | PM | E-Mail  
Andavos
Administrator
Foren-Gott


Dabei seit: 30.11.2003
Herkunft:
Posts: 6185
      Zitat | Bearbeiten

Muss es denn ein regulärer Ausdruck sein?

Mit einer Schleife, der durch die Characters scannt, würde man das sehr schnell lösen:

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<?php
$str
"(Ein Text, noch ein) Text";

$offeneKlammern 0;
for(
$i=0;$i<strlen($str);$i++) {
  
$char $str{$i};

  if(
$char == "," && $offeneKlammer == 0)
     echo 
"An Position $i";
  if(
$char == "(")
    
$offeneKlammern++;

  if(
$char == ")" && $offeneKlammern 0)
    
$offeneKlammern--;
}


Dies berücksichtigt auch den Fall von Mehrfachklammern, etwas, was man mit regulären Ausdrücken nicht hinbekommen kann.



www.php-einfach.de, PHP lernen leicht gemacht
www.webhosterwissen.de, Webhosting-Vergleich



03.06.2016, 21:00 Profil | PM | E-Mail  
DingsDaBums
Mitglied
Exzellenter User


Dabei seit: 12.09.2010
Herkunft: keine Angabe
Posts: 2364
      Zitat | Bearbeiten

Zitat:
Orginal von Andavos
Muss es denn ein regulärer Ausdruck sein?

Mit einer Schleife, der durch die Characters scannt, würde man das sehr schnell lösen:

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<?php
$str
"(Ein Text, noch ein) Text";

$offeneKlammern 0;
for(
$i=0;$i<strlen($str);$i++) {
  
$char $str{$i};

  if(
$char == "," && $offeneKlammer == 0)
     echo 
"An Position $i";
  if(
$char == "(")
    
$offeneKlammern++;

  if(
$char == ")" && $offeneKlammern 0)
    
$offeneKlammern--;
}


Dies berücksichtigt auch den Fall von Mehrfachklammern, etwas, was man mit regulären Ausdrücken nicht hinbekommen kann.



Ein Regulärer Ausdruck wäre schon sehr gut, damit ich nicht so eine Mischung aus Regulären Ausdruck und Softwarelösung habe.
Aber trotzdem danke


Schau mal bei meinem Projekt vorbei. Vielleicht ist das ja was für dich MyStartPanel - Deine persönliche Startseite mit deinen Favoriten
Auf der Suche nach einem guten Vokabeltrainer? Vokabeltrainer Cramfire - Schnell und effektiv Vokabeln lernen
05.06.2016, 22:09 Profil | PM | E-Mail  
Seiten (1):  1 
PHP-Support.de » Programmierung » Sonstige Sprachen » Regulärer Ausdruck alle Kommas außerhalb von Klammern   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz