php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.06.2006, 17:19  
Erfahrener Benutzer
 
Registriert seit: 15.10.2005
Beiträge: 231
Dilandau kann nur auf Besserung hoffen
Standard regular expression?

hi,

ich habe einen haufen strings im format:

Code:
Name@aka-Name[Realname]{Ort}/Gruppe(info@format/mod|size,
noch ein mod mit info@format usw), noch so eine reihe mit Name usw und
noch so eine.

diese strings sollen in variablen zerlegt werden, also Name zu $name, akaname zu $akaname, Realname zu $realname usw. es soll ein array aus objekten dazu verwendet werden, zB wie $string[1]->Name.

was wäre der infachste weg dieses ziel zu erreichen? ich habe noch nie was mit regular expressions gemacht. kann das helfen?
__________________
mobilis in mobili
Dilandau ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.06.2006, 17:30  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

http://www.regenechsen.de/phpwcms/index.php?regex
Nimm in etwa sowas:
PHP-Code:
<?php
preg_match_all
('#(.*?)@(.*?)\[(.*?)\]\{(.*?)\}/(.*?)\((.*?)/(.*?)\|(.*?)(.*?)#'$sString$aMatches);
echo 
'<pre>';
print_r($aMatches);
echo 
'</pre>';
?>
Chr!s ist offline  
Alt 28.06.2006, 18:15  
Erfahrener Benutzer
 
Registriert seit: 15.10.2005
Beiträge: 231
Dilandau kann nur auf Besserung hoffen
Standard

da blick ich nicht durch. das beispiel scheint ausserdem immer nur ein leeres array zurückzuliefern.
__________________
mobilis in mobili
Dilandau ist offline  
Alt 28.06.2006, 20:13  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich erkenn bei deinem String überhaupt kein Muster, was soll denn dann $name bei diesem Beispiel konkret enthalten?
Zergling-new ist offline  
Alt 28.06.2006, 20:18  
Erfahrener Benutzer
 
Registriert seit: 15.10.2005
Beiträge: 231
Dilandau kann nur auf Besserung hoffen
Standard

der string im code ist ein template. hier folgt jetzt ein beispiel wie er in echt aussehen könnte:

AGSzabo@Dilandau[Andreas G. Szabo]{München}/Schneidersitz(Loadertune@protracker/mod.lepeltheme|20342, mod.endtheme|23124, ...), Ant0nwax@Odi[Adam Szabo]{München}/BENQ(hippel/noname|20342, ...),
...
Das template: Name@aka-Name[Realname]{Ort}/Gruppe(info@format/mod|size, ...), ...

daraus soll ein array aus objekten werden: zB $object[0]->Name = AGSzabo, oder $object[0]->akaName = Dilandau, $object[0]->Ort = München usw.
__________________
mobilis in mobili
Dilandau ist offline  
Alt 28.06.2006, 21:37  
Gast
 
Beiträge: n/a
Standard

Kannste mal ein komplettes Beispiel posten, also ohne ... dazwischen bzw. hinten dran.
Ich erkenne bis jetzt auch kein Muster
 
Alt 28.06.2006, 22:03  
Erfahrener Benutzer
 
Registriert seit: 01.02.2004
Beiträge: 550
cytrobic
Standard

AGSzabo@Dilandau[Andreas G. Szabo]{München}/Schneidersitz(Loadertune@protracker/mod.lepeltheme|20342, mod.endtheme|23124, ...),

das ist wohl ein ganzer satz. m.E.
__________________
keine
cytrobic ist offline  
Alt 28.06.2006, 22:19  
Gast
 
Beiträge: n/a
Standard

Mal versuchen:

EDIT:

Code:
error_reporting(E_ALL);

$TXT = '
AGSzabo@Dilandau[Andreas G. Szabo]{München}/Schneidersitz  
(Loadertune@protracker/mod.lepeltheme|20342, mod.endtheme|23124, ...)
';

# als Beispiel über mehrere Zeilen

$pattern = '
/                # Delimiter
\s*(\w+@\w+)\s*  # AGSzabo@Dilandau
\[               # 
\s*(.*?)\s*      # Andreas G. Szabo
\]               # 
\{               # 
\s*(.*?)\s*      # München
\}               # 
\/               # 
\s*(\w+)\s*      # Schneidersitz
\(               # 
\s*(\w+@\w+)\s*  # Loadertune@protracker
\/               # 
\s*(.*?)\s*      # mod.lepeltheme|20342, mod.endtheme|23124
\)               # Delimiter
/isx';     
preg_match_all($pattern, $TXT, $array);

echo '<pre>', print_r($array, true), '</pre>';
Ergibt:

Code:
Array
(
    [0] => Array
        (
            [0] => 
AGSzabo@Dilandau[Andreas G. Szabo]{München}/Schneidersitz  
(Loadertune@protracker/mod.lepeltheme|20342, mod.endtheme|23124, ...)
        )

    [1] => Array
        (
            [0] => AGSzabo@Dilandau
        )

    [2] => Array
        (
            [0] => Andreas G. Szabo
        )

    [3] => Array
        (
            [0] => München
        )

    [4] => Array
        (
            [0] => Schneidersitz
        )

    [5] => Array
        (
            [0] => Loadertune@protracker
        )

    [6] => Array
        (
            [0] => mod.lepeltheme|20342, mod.endtheme|23124, ...
        )

)
Bei Array[6] dann diesen Teil nochmals nach Komma und | trennen.
Habe mal mit Absicht CODE benutzt anstelle von PHP.
 
Alt 29.06.2006, 07:57  
Erfahrener Benutzer
 
Registriert seit: 15.10.2005
Beiträge: 231
Dilandau kann nur auf Besserung hoffen
Standard

die aufschlüsselung in einzelne bestandteile wäre so:

AGSzabo
Dilandau
Andreas G. Szabo
München
Schneidersitz
Loadertune
protracker
mod.lepeltheme|20342, mod.endtheme|23124, ...
...das ganze nochmal...
..
__________________
mobilis in mobili
Dilandau ist offline  
Alt 29.06.2006, 08:00  
Erfahrener Benutzer
 
Registriert seit: 14.02.2005
Beiträge: 790
GrU3nL!nG
Standard

Zitat:
...das ganze nochmal...
Wie waärs mit einer Schleife?!
__________________
Gruß Marc
GrU3nL!nG ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu Regular Expression Schiedsrichter PHP Tipps 2008 1 19.09.2007 16:41
einfachere lösung für regex als meine variante? Promaetheus PHP Tipps 2006 12 06.09.2006 11:45
regular Expression verstehen GothicFiction PHP Tipps 2006 14 23.05.2006 23:15
Suchen und ersetzen mit Regular Expressions? Datenbanken 0 09.09.2005 15:21
Regular Expression - Alles zwischen Anführungzeichen PHP Tipps 2005-2 3 05.08.2005 14:07
Regular Expression, Suchen bis zum ersten suppart... PHP-Fortgeschrittene 7 04.05.2005 09:03
Posix Regular Expression Problem PHP Tipps 2005 9 15.02.2005 15:59
mit regular expressions einen Link umformen?? Wie?? 18inch PHP-Fortgeschrittene 8 19.01.2005 23:45
[Erledigt] Datum mit Regular Expression kontrollieren PHP Tipps 2004-2 7 06.12.2004 09:44
[Erledigt] regular expression: bin zu blöd PHP-Fortgeschrittene 2 08.11.2004 13:12
Regular Expressions PHP Tipps 2004 2 31.07.2004 13:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
andreas g szabo, regular expression name, regulärer ausdruck komma trenner, g regex php |., g oder reg exp php, regexp nachnamen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.