Je côlons besoin d'une expression rationnelle simple pour php preg_replace:expression régulière simple remplacement
Entrée: rapide brun: non: fox etc sortie: rapide marron | no |! renard etc
: quelque chose: à !
Je côlons besoin d'une expression rationnelle simple pour php preg_replace:expression régulière simple remplacement
Entrée: rapide brun: non: fox etc sortie: rapide marron | no |! renard etc
: quelque chose: à !
$output = preg_replace('/:([^ ]+):/', '!|$1|!', $input);
Vous pouvez remplacer [^ ]
avec un ensemble plus précis, en fonction de ce que vous attendez d'être entre les :
s.
Essayez ceci:
$str = preg_replace('/:([^:]+):/', '!|\\1|!', $str);
Cela dépend si un espace est autorisé entre les deux-points. Si ce n'est pas:
$out = preg_replace('!:([^ ]+):!', '!|$1|!', $in);
est bien. Vous pouvez également envisager d'utiliser une expression non gourmand à la place:
$out = preg_replace('!:(.+?):!', '!|$1|!', $in);
Voici une autre option:
$out = preg_replace('!:([^:]+):!', '!|$1|!', $in);
Merci, fonctionne très bien –
si vous voulez plus d'un mot entre les deux points à remplacer comme ça, utilisez le code de Gumbo (ou remplacez [^] 'par' [^:] ') –