Wrapper regexp php en java

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 873 fois - Téléchargée 25 fois

Contenu du snippet

Ce code permet d'utiliser les fonctions de PHP en java et notemment les fonctions qui utilisent les éxpressions régulières comme ereg, eregi, ereg_replace, eregi_replace, preg_split, ce code je l'ai cré dans un but de migrer de PHP en J2EE dans le cadre d'un projet, et afin de profiter de la puissance du syntaxe des éxpressions régulières PHP en utilisant java.

Source / Exemple :


import java.lang.String; 
import java.util.regex.*;

public class RegexpWrapper 
{
	RegexpWrapper()
	{
		
	}
	public static boolean ereg(String patt,String subj)
	{
		// compilation de la regex avec le motif : patt
		Pattern p = Pattern.compile(patt);
		// création du moteur associé à la regex sur la chaîne 
		Matcher m = p.matcher(subj);
		//retourne la valeur
		boolean b=m.matches();
		return b;
	}
	public static boolean eregi(String patt,String subj)
	{
		// compilation de la regex avec le motif : patt
		Pattern p = Pattern.compile(patt,Pattern.CASE_INSENSITIVE);
		// création du moteur associé à la regex sur la chaîne 
		Matcher m = p.matcher(subj);
		//retourne la valeur
		boolean b=m.matches();
		return b;
	}
	public static String ereg_replace(String patt,String remplacement,String subj)
	{
		// compilation de la regex avec le motif : patt
		Pattern p = Pattern.compile(patt);
		// création du moteur associé à la regex sur la chaîne 
		Matcher m = p.matcher(subj);
		// remplacement de toutes les occurrences
		String s = m.replaceAll(remplacement);
		return s;
	}
	public static String eregi_replace(String patt,String remplacement,String subj)
	{
		// compilation de la regex avec le motif : patt
		Pattern p = Pattern.compile(patt,Pattern.CASE_INSENSITIVE);
		// création du moteur associé à la regex sur la chaîne 
		Matcher m = p.matcher(subj);
		// remplacement de toutes les occurrences
		String s = m.replaceAll(remplacement);
		return s;
	}
	public static String[] preg_split(String patt,String subj)
	{
		// compilation de la regex avec le motif : patt
		Pattern p = Pattern.compile(patt);
		// séparation en sous-chaînes
		String[] items = p.split(subj);
		//retourner le tableau de string
		return items;
	}
}

Conclusion :


J'éspere bien que ce code vous sera utile et vous facilite la vie, je met à votre disposition mon mail omarnetfr@hotmail.fr n'hésitez pas de me mailer en cas de besoind d'aide ou d'information.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
lundi 6 juin 2005
Statut
Membre
Dernière intervention
14 juillet 2008

Moi je trouve cette source très très pratique car je suis pas mal habitué à manipuler les fonctions PHP "ereg" etc. Disons que là tout de suite ça me fait gagner un temps fou pour un projet simple de migration de données entre 2 BDD...

Merci !
Messages postés
49
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
27 novembre 2011
7
Bonjour,

Je suis un peu d'accord avec les autres de l'intérêt limité de ta source, par contre ce qui aurais été bien de voir, c'est les fonctions PHP du type "int ereg(string pattern, string string , array ®s)" qui écrit dans "regs" un tableau des captures données dans le masque. ( http://fr3.php.net/manual/fr/function.ereg.php )

Bonne continuation ;) .
Messages postés
7
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
27 avril 2006

Ouais enfin, si tu veux tu la refais en une ligne si c'est au nombre de ligne que tu juges :
public static String eregi_replace(String patt,String remplacement,String subj) {
return subj.replaceAll(patt, remplacement);
}

Et j'ai pas envie d'écrire les autres mais c'est exactement pareil. En plus, tu fais explicitement quelque chose que Java fait implicitement avec sa classe String. La méthode indexOf permet de vérifier si ta chaîne contient une autre chaîne. La méthode split est également connue...

Bref, finalement je ne vois pas l'intérêt de ta source à moins que ce soit juste pour utiliser les noms de méthode à la PHP...
Messages postés
10
Date d'inscription
dimanche 18 juillet 2004
Statut
Membre
Dernière intervention
1 mars 2007

->Neodante: Ces fonctions n'ont pas de relation directe avec les servlets, ils peuvent être utilisé dans java dans jsp, mais dans mon cas je les utilise dans des servlets.
->Neodante: conçernant ma présentation pour la source, je suis ouvert à toute proposition pour qu'il sert de bien au utilisateurs.
->Brasseld: oui, t'as raison je me suis pas rendu compte que l'objet String contient la même fonction sauf que dans ton cas t'as fais 2 ligne + une autre ligne pour réupérer la chaine, donc sera mieux d'utiliser ma fonction, en plus pour les programmeurs de PHP ils vont trouvé ça sympa, le syntaxe de PHP en java.
Messages postés
7
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
27 avril 2006

Pour remplacer une chaine de caractére dans une chaine de caractere par une autre chaine, je faisais directement :
String s = "testtesttesttesttesttest";
s.replaceAll("te", "Te");

Maintenant si j'utilise sa méthode eregi_replace avec le pattern et le matcher, qu'elle est la meilleure méthode à utiliser et surtout qu'elle est la plus rapide. Car je dois remplacer des tag dans une page html du style <!--{{TAG_SELECT_SEMAINES}}--> par du contenu.

Pour moi les deux méthodes font la même chose, car je penser que le replaceAll de String créait implicitement un matcher et un pattern...
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.