Iki nokta üst üste yerine basit normal ifade

3 Cevap php

Ben php preg_replace için basit bir regexpi gerekir:

Input: Quick brown :no: fox etc Output: Quick brown !|no|! fox etc

:something: to !|something|!

3 Cevap

$output = preg_replace('/:([^ ]+):/', '!|$1|!', $input);

Eğer : s arasında olmasını bekliyoruz ne bağlı olarak, [^ ] daha özel bir set ile değiştirmek isteyebilirsiniz.

Bu deneyin:

$str = preg_replace('/:([^:]+):/', '!|\\1|!', $str);

Bir boşluk kolonların arasında izin verilir eğer bağlıdır. Değil ise:

$out = preg_replace('!:([^ ]+):!', '!|$1|!', $in);

gayet iyi. Ayrıca yerine olmayan açgözlü ifadesini kullanarak düşünebilirsiniz:

$out = preg_replace('!:(.+?):!', '!|$1|!', $in);

Burada başka bir seçenek:

$out = preg_replace('!:([^:]+):!', '!|$1|!', $in);