php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.05.2009, 16:27  
Neuer Benutzer
 
Registriert seit: 07.05.2009
Beiträge: 2
knea befindet sich auf einem aufstrebenden Ast
Standard Regex Problem

Ich möchte mit preg_match in einer PHP-Datei nach einer bestimmten Funktion samt Kommentar suchen.
Dazu nutze ich folgenden regulären Ausdruck:

/(\/\*\*.*public function getName.*\})/Us

Was ich eigentlich erwarte wäre etwa das folgende:
PHP-Code:
/**
 * kommentar
 */
public function getName() {
    ...

Was ich aber mit obigem Ausdruck bekomme ist alles vom allerersten Kommentar der Datei an bis zum Ende der gewünschten Funktion. Also als ob ich den Ungreedy-Modifier nicht gesetzt hätte.
knea ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.05.2009, 16:57  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Ungreedy geht nur in eine Richtung und die ist vorwärts.


Versuchs mal mit:

PHP-Code:
$func = new ReflectionFunction('getName');
echo 
$func->getDocComment(); 
erc ist offline  
Alt 07.05.2009, 17:00  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Naja, ich denke ungreedy funktioniert sozusagen "linksbündig". Solange er früher aufspringen/matchen kann, tut er es eben. Und das solange der erste Abbruch möglich ist. Greedy würde den letzten Abbruch wählen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 07.05.2009, 18:07  
Neuer Benutzer
 
Registriert seit: 07.05.2009
Beiträge: 2
knea befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von erc Beitrag anzeigen
Ungreedy geht nur in eine Richtung und die ist vorwärts.
Sowas ähnliches hab ich mir schon gedacht.


Zitat:
Zitat von erc Beitrag anzeigen
Versuchs mal mit:

PHP-Code:
$func = new ReflectionFunction('getName');
echo 
$func->getDocComment(); 
Danke erstmal für den Tipp. Gibt es auch eine Methode die Funktion selber (also den Funktionsbody) zu bekommen. Hab auf den ersten Blick keine solche Methode gefunden.
knea ist offline  
Alt 07.05.2009, 19:56  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Zitat:
Zitat von knea Beitrag anzeigen
Gibt es auch eine Methode die Funktion selber (also den Funktionsbody) zu bekommen. Hab auf den ersten Blick keine solche Methode gefunden.
Nicht das ich wüste. Notfalls könnte man es aber einfach über die start und endline realisieren.
Was hast du vor? Es führen bekanntlich viele Wege nach Rom.
erc ist offline  
Alt 08.05.2009, 13:03  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Schau Dir mal die Tokenizer Functions an. Damit geht das.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


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
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
2 Regex in PHP kompatible Syntax übersetzen NoiZy PHP-Fortgeschrittene 6 07.04.2008 09:04
Problem mit regex BLiNK PHP Tipps 2006 19 25.03.2006 13:32
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Problem mit zu langen String -> regex PHP Tipps 2006 1 25.01.2006 17:38
[Erledigt] Problem mit einem Regex PHP-Fortgeschrittene 4 23.01.2006 09:34
[Erledigt] Regex Problem. PHP Tipps 2007 14 07.11.2005 15:24
komplexeres Regex Problem Schaelle PHP Tipps 2005-2 14 29.08.2005 20:21
Problem mit RegEx freq.9 PHP Tipps 2005-2 3 29.08.2005 13:32
Regex Problem PHP Tipps 2005-2 8 14.08.2005 18:40
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29
Problem mit regex PHP Tipps 2004 1 09.09.2004 10:00
[Erledigt] regex problem PHP Tipps 2004 9 04.09.2004 16:46
[Erledigt] Problem mit eine REGEX! PHP-Fortgeschrittene 7 04.06.2004 17:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:43 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