Простое регулярное выражение, заменяющее двоеточие - PullRequest
0 голосов
/ 03 октября 2009

Мне нужно простое регулярное выражение для php preg_replace:

Ввод: быстрый коричневый: нет: лиса и т. Д. Вывод: быстро коричневый! | Нет |! лиса и т. д.

: что-то: в ! | Что-то |!

Ответы [ 3 ]

2 голосов
/ 03 октября 2009
$output = preg_replace('/:([^ ]+):/', '!|$1|!', $input);

Возможно, вы захотите заменить [^ ] на более конкретный набор, в зависимости от того, что вы ожидаете между : s.

2 голосов
/ 03 октября 2009

Попробуйте это:

$str = preg_replace('/:([^:]+):/', '!|\\1|!', $str);
0 голосов
/ 03 октября 2009

Это зависит от того, разрешено ли пространство между двоеточиями. Если это не так:

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

в порядке. Вы также можете рассмотреть возможность использования не жадного выражения:

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

Вот еще один вариант:

$out = preg_replace('!:([^:]+):!', '!|$1|!', $in);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...