Что означает символ ~ ~ в регулярном выражении PHP?

Что означает символ «~» в следующем:

preg_match_all("~<img [^>]+>~", $inputw, $output); 

Я предполагаю, что они начинаются и заканчивают маркеры, такие как ^ и $.

Это разделитель

Разделителем может быть любой символ, не являющийся буквенно-цифровым, без обратного слэш-символа.

Как сказал Намби, вы можете выбрать разделитель в регулярном выражении. Однако, если разделитель появляется в шаблоне, он должен сбежать. Зная это, представьте себе следующую ситуацию

 '/\/var\/www\/test/' # delimited with / '~/var/www/test~' # delimited with ~ 

Последнее не требует выхода из / поскольку теперь разделитель ~ . Гораздо чище, не так ли?

В качестве общего руководства вам предлагается выбрать разделитель, который не является образцом самого шаблона, я предполагаю, что ~ широко распространен в качестве альтернативы / поскольку он редко появляется в образце реального мира.

Грязный маленький секретный разделитель, который они не говорят вам ->
http://uk.php.net/manual/en/regexp.reference.delimiters.php

Примеры:

Сопряженные разделители ( raw: \d{2}Some\{33\}\w{5} )

{\d{2}Some\\{33\\}\w{5}} разбираются в \d{2}Some\\{33\\}\w{5} и
{\d{2}Some\{33\}\w{5}} разбираются в \d{2}Some{33}\w{5}

Un-Paired delimiters ( raw: \d{2}Some\+33\+\w{5} )

+\d{2}Some\+33\+\w{5}+ анализируются на \d{2}Some+33+\w{5} и
+\d{2}Some\\+33\\+\w{5}+ не будут разбираться, потому что разделитель не экранирован.