Regulaere Ausdruecke

Diskutiere Regulaere Ausdruecke im Programmierung Forum im Bereich Software Forum; Hallo Ich suche eine Moeglichkeit, mit einem regulaeren Ausdruck den Inhalt zwischen zwei Klammern zu finden, wobei der Inhalt jedoch auch noch...
N

Never_Born

Gast
Hallo

Ich suche eine Moeglichkeit, mit einem regulaeren Ausdruck den Inhalt zwischen zwei Klammern zu finden, wobei der Inhalt jedoch auch noch weitere Klammern beinhalten kann.

Beispiel:
Aus "(ab(as)(de))" moechte ich "ab(as)(de)" bekommen. Im Moment bekomme ich aber immer nur "ab(as".

Kann mir jemand helfen?

Gruss
Never_Born
 
Shifu

Shifu

Mitglied seit
13.10.2003
Beiträge
1.023
Alter
38
Prof. Dr. Wagner ??
 
N

Never_Born

Gast
Ich habe nun eine kommaseparierte Liste, die ich nach den Werten splitten moechte. Waere eigentlich keine grosse Sache, aber diese Liste sieht zum Beispiel so aus:
Code:
'test,test',${test},${test:(${test},'test')},${test},test
Mit diesem regulaeren Ausdruck bin ich schon recht weit gekommen:
Code:
/((?:\$\{.+?\})|(?:\'.*?\')|[^,]+)(?:,)?/
Das einzige, was dabei noch nicht geht, ist der mittlere Teil.

Ich hab das Gefuehl, dass das so nie funkionieren wird. Gibt's in PHP eine andere Moeglichkeit, eine solche Liste aufzusplitten?

Gruss
Never_Born
 
stpe

stpe

Mitglied seit
14.11.2001
Beiträge
2.729
die loesung fuer problem 1 muesste ganz einfach ueber
Code:
\(.*\)
zu erreichen sein.

beim zweiten problem weiss ich nicht, welche kommata nun beruecksichtigt werden sollen und welche nicht.
 
N

Never_Born

Gast
Beim zweiten sollen alle Kommas in irgendwelchen Klammern oder Hochkommas ignoriert werden.
 
N

Never_Born

Gast
So, ich habe mich mal wieder damit befasst und kam nur auf diese umstaendliche Funktion:
Code:
function split_arguments($arguments)
{
    $chars = preg_split("//", $arguments, -1, PREG_SPLIT_NO_EMPTY);
                                                              
    $open = array();
    $args = array();
    $new_arg = true;
                                                              
    foreach($chars as $char)
    {
        $last_element = end($open);
                                                              
        switch($char)
        {
            case '(':    $open[] = '('; break;
            case ')':    if($last_element == '(') array_pop($open); break;
            case '{':    $open[] = '{'; break;
            case '}':    if($last_element == '{') array_pop($open); break;
            case "'":    if($last_element == "'") array_pop($open);
                    else $open[] = "'"; break;
        }
                                                              
        if($char == "," && count($open) == 0) $new_arg = true;
        elseif($new_arg)
        {
            $args[] = "";
            $new_arg = false;
        }
        if(!$new_arg)
        {
            if(count($args) === 0) $arg_number = 0;
            else $arg_number = count($args)-1;
            $args[$arg_number] .= $char;
        }
    }
                                                              
    return $args;
}
Aber sie funktioniert, soweit ich sie getestet habe :up

Gruss
Never_Born
 
Thema:

Regulaere Ausdruecke

Regulaere Ausdruecke - Ähnliche Themen

  • DOS Eingabeaufforderung: rename / reguläre Ausdrücke

    DOS Eingabeaufforderung: rename / reguläre Ausdrücke: Hallo, wieso funktioniert bei der DOS-Eingabeaufforderung (Windows 8 sowie 10) der Befehl zum Umbenennen der Dateien nicht mehr wie bis ca...
  • How can I detect regular expressions in an Outlook-Mail subjectline and automatically hyperlinking it?

    How can I detect regular expressions in an Outlook-Mail subjectline and automatically hyperlinking it?: I'm trying to check the subject line to a match with my regex. If it hits I would like to automaticly hyperlink the matches, so my browser opens a...
  • Regular and frequent BSOD (Critical Process Died) after 1709 Update

    Regular and frequent BSOD (Critical Process Died) after 1709 Update: Hello everyone, After I get forced to update to 1709 my system first freezes and then crashes with a BSOD telling Critical_Process_Died and no...
  • Is Outlook 2013 able to check if regular automatic generated mails are missing?

    Is Outlook 2013 able to check if regular automatic generated mails are missing?: Hello out there, I recieve some automated generated mails daily to keep an eye on some data. Is Outlook able to trigger an alarm if one of...
  • Is Outlook 2013 able to check if regular automatic generated mails are missing?

    Is Outlook 2013 able to check if regular automatic generated mails are missing?: Hello out there, I recieve some automated generated mails daily to keep an eye on some data. Is Outlook able to trigger an alarm if one of...
  • Ähnliche Themen

    Oben