Si vous cherchez un espace, ce serait " "
(un espace).
Si vous cherchez un ou plusieurs, c'est " *"
(c'est deux espaces et un astérisque) ou " +"
(un espace et un plus).
Si vous recherchez un espacement commun, utilisez "[ X]"
ou "[ X][ X]*"
ou "[ X]+"
où se X
trouve le caractère de tabulation physique (et chacun est précédé d'un seul espace dans tous ces exemples).
Ceux-ci fonctionneront dans tous les moteurs * regex que j'ai jamais vus (dont certains n'ont même pas le caractère un ou plusieurs "+"
, ugh).
Si vous savez que vous utiliserez l'un des moteurs regex les plus modernes, "\s"
et ses variations sont la voie à suivre. En outre, je crois 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 espaces précédant ou suivant.
Pour PHP en particulier, cette page peut vous aider.
De votre édition, il semble que vous souhaitiez supprimer tous les caractères non valides Le début de ceci est (notez l'espace à l'intérieur de l'expression régulière):
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
# ^ space here
Si vous voulez également que la ruse garantisse qu'il n'y ait 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:
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag); # remove space from start
$newtag = preg_replace ("/ $/", "", $tag); # and end