|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
bonjour
je cherche une astuce pour simplifier l'expression régulière suivante (qui fonctionne cependant): Code :
'#(abstract|final|static|protected|public|private|)[ \t]*(abstract|final|static|protected|public|private|)[ \t]*(abstract|final|static|protected|public|private|)[ \t]*(abstract|final|static|protected|public|private|)[ \t]*function[ \t\n]+(&?[a-z0-9_]+)#i'
"function toto()" ou "static final public function titi()" ou les mots clés dans n'importe quel ordre ... l'interet et d'avoir une bonne approximation des fonctions/methodes déclarées dans un fichier même s'il ne se compile pas. en général je cherche à récupérer un nombre indeterminé de plusieurs mots clés connus disposés dans un ordre aléatoire. merci de votre aide.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
Bonsoir,
Je ne sais pas si j'ai bien compris ce que tu voulais exactement. j'ai essayé ceci Code :
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
idéalement oui. je vais réfléchir à ta réponse parce que je comprends pas tout intuitivement.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
j'hésite entre
Code :
'#(?:(?>(abstract)|(protected)|(private)|(static)|(public)|(final))\s+){0,5}function\s+(\w+)\s*\(#i'
Code :
'#(?:(?:(abstract)|(protected)|(private)|(static)|(public)|(final))\s+){0,5}function\s+(\w+)\s*\(#i'
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
pour mémoire voici le texte démo:
Code :
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
||
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2010 Messages : 7 108 ![]() |
pour parser du PHP c'est avec le Tokenizer et/ou avec Reflection
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
je veux pas parser le code, je veux être capable d'avoir une approximation qui réussi lorsque le code "compile" ou non.
Parce que sinon je pourrai aussi compiler le fichier et l'executer et regarder quelle est la classe qui a été définie et quelles sont les méthodes à utiliser. En plus pour moi c'est l'occasion de m'améliorer sur l'écriture des regex, parce que je ne comprend pas pourquoi les résultats sont comme ils sont...
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
du coup j'ai oublié un truc que j'utilise jamais
http://fr.php.net/manual/fr/language...ces.return.php du coup ça devient... Code :
'#(?:(?>(abstract)|(protected)|(private)|(static)|(public)|(final))\s+){0,5}function\s+(&?\w+)\s*\(#i'
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com