expressions régulières et correspondance exacte

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 : expressions régulières et correspondance exacte

par Sékiltoyai » 09 août 2007, 16:44

Ah, j'avais pas compris dans ce sens là, oui. Je croyais qu'il voulait dire qu'en plus de pouvoir détecter les nombres entiers, ca pouvait détecter les nombres décimaux, alors que c'est le contraire :mrgreen:

par Ripat » 09 août 2007, 16:41

donc l'expression matchera aussi les entiers
Les nombres décimaux, les nombres décimaux… :)
Genova a raison, le groupe (,[0-9]+)? est optionnel par le point d'interrogation, il est donc correct de dire qu'il matchera les décimaux et les entiers.

:wink:

par d0m » 09 août 2007, 14:23

merci pour vos réponses, ca marche

par Sékiltoyai » 09 août 2007, 14:13

donc l'expression matchera aussi les entiers
Les nombres décimaux, les nombres décimaux… :)

Sinon, tu peux remplacer [0-9] par \d, c'est la même chose en plus court. :)

par Genova » 09 août 2007, 14:03

Bonjour, pour vérifier si une chaîne correspond exactement à l'expression tu peux utiliser le caractère ^qui délimite le début de l'expression, et $ qui la termine.

Par exemple :
$str1 = '17,458';
$str2 = '17,458 euros';
$str3 = 'Prix : 17,458';

// ^[0-9]+(,[0-9]+)?$ matchera $str1 mais ni $str2 ni $str3

// [0-9]+(,[0-9]+)?$ matchera $str1 et $str3 mais pas $str2

// ^[0-9]+(,[0-9]+)? matchera $str1 et $str2 mais pas $str3

// [0-9]+(,[0-9]+)? matchera les trois
(,[0-9]+)? signifie que ton nombre peut potentiellement prendre une virgule avec des chiffres derrière (donc l'expression matchera aussi les entiers).

expressions régulières et correspondance exacte

par d0m » 09 août 2007, 13:57

Salut,

je ne suis pas très familier de l'utilisation des expressions régulières en PHP.
J'ai jeté un coup d'oiel aux fonctions mais quelque chose m'échappe.
Dans la plupart de ces fonctions php, on cherche si une occurence apparait mais je n'arrive pas à voir comment vérifier qu'une chaine correspond exactement à une expression.

par exemple pour les chaines de ce type :
17,458
[0-9]+[,]{0-1}[0-9]*

il pourrait y avoir d'autres caractères avant ou après. Est on obligé de testeer ensuite la longueur des chaines?