Expression régulière

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Expression régulière

Re: Expression régulière

par niuxe » 16 janv. 2010, 01:54

Niuxe, ton premier \d n'est pas dans le sous-masque ! :wink:
Effectivement, je viens de le voir en testant chez moi le script, il manque bien un sous-masque pour mieux capturer le tout. Autant pour moi. Bien vu :)

Re: Expression régulière

par ooflorent » 15 janv. 2010, 22:37

Niuxe, ton premier \d n'est pas dans le sous-masque ! :wink:

Re: Expression régulière

par coldwarkid » 15 janv. 2010, 11:03

<?php
$subject = 'Un prix de 12,30€ au lieu de 15 € soit 2.70€ de gagné !';
preg_match_all('/(\d+(?:[\.,][\d]{2})?)\s*€/', $subject, $matches);
print_r($matches[1]);
?>

Cette solution fonctionne bien pour mon cas.

Merci encore !

Seb

Re: Expression régulière

par coldwarkid » 15 janv. 2010, 10:48

Bonjour à tous et merci infiniment pour vos messages.
Je vais regarder de près vos solutions dans le courant de la journée.

Merci, je vous tiendrai informé en retour.

Seb

Re: Expression régulière

par niuxe » 14 janv. 2010, 02:35

Hello,
L'expression de Nolem reflète l'idée du motif à appliquer mais le masque n'est pas bon (ne sélectionne pas les premiers chiffres).
En es tu sûr ?

En rapport avec ta chaine et en reprenant mon motif :
$motif= "#\d+([.,]\d{2})?( )?€#";
Bonne soirée

Re: Expression régulière

par ooflorent » 13 janv. 2010, 00:33

L'expression de Niuxe reflète l'idée du motif à appliquer mais le masque n'est pas bon (ne sélectionne pas les premiers chiffres).
<?php
$subject = 'Un prix de 12,30€ au lieu de 15 € soit 2.70€ de gagné !';
preg_match_all('/(\d+(?:[\.,][\d]{2})?)\s*€/', $subject, $matches);
print_r($matches[1]);
?>

Re: Expression régulière

par niuxe » 12 janv. 2010, 22:00

Hello,

Je fais vite un passage éclair. Pour les expressions rationnelles, je t'invite à parcourir ce site. Dans l'immédiat, ton soucis devrait être résolu par ceci :
$motif= "#\d+([.,]\d{2})? €#"; //PCRE
bonne soirée

Expression régulière

par coldwarkid » 12 janv. 2010, 20:39

Bonsoir à tous,

Voici mon problème, j'aimerais extraire un prix de type "12.50 €" ou "12,50 €" ou "12 €" d'une chaîne de caractère contenant
avant ce prix du texte (environ 100 caractères).

J'ai regardé du côté des expressions régulières mais je pense qu'il va me falloir du temps pour appréhender toute la syntaxe.
Peut-être que quelqu'un pourrait m'orienter vers une solution et m'expliquer son fonctionnement.

Merci d'avance pour votre aide précieuse,

Seb