Si vous cherchez un espace, ce serait " "
(un espace).
Si vous en cherchez un ou plusieurs, il s'agit de " *"
(c'est deux espaces et un astérisque) ou " +"
(un espace et un plus).
Si vous cherchez un espacement commun, utilisez "[ X]"
o "[ X][ X]*"
o "[ X]+"
où X
est le caractère de tabulation physique (et chacun est précédé d'un espace unique dans tous ces exemples).
Ceux-ci fonctionneront dans chaque * Je n'ai jamais vu de moteur de regex (dont certains n'ont même pas la fonction "un ou plus"). "+"
personnage, ugh).
Si vous savez que vous allez utiliser l'un des moteurs regex les plus modernes, "\s"
et ses variantes sont la voie à suivre. En outre, je pense que les limites des mots correspondent également au début et à la fin des lignes, ce qui est important lorsque vous recherchez des mots qui peuvent apparaître sans espace avant ou après.
Pour PHP spécifiquement, cette page peut aider.
D'après votre édition, il semble que vous vouliez supprimer tous les caractères non valides. Le début de ceci est (notez l'espace à l'intérieur de la regex) :
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
# ^ space here
Si vous voulez également vous assurer qu'il n'y a qu'un seul espace entre chaque mot et aucun au début ou à la fin, c'est un peu plus compliqué (et probablement une autre question) mais l'idée de base serait la suivante :
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag); # remove space from start
$newtag = preg_replace ("/ $/", "", $tag); # and end
2 votes
Hmm... il n'y a pas non plus de question sur la correspondance entre un 'a' et un 'b'... ;)
1 votes
Vous devriez voir le exemples de regex