Note that bracket style opening and closing delimiters aren't a 100% problem-free solution, as they need to be escaped when they aren't in matching pairs within the expression. That mismatch can happen when they appear inside character classes [...], as most meta-characters lose their special meaning. Consider these examples:
<?php
preg_match('{[{]}', ''); // Warning: preg_match(): No ending matching delimiter '}'
preg_match('{[}]}', ''); // Warning: preg_match(): Unknown modifier ']'
preg_match('{[}{]}', ''); // Warning: preg_match(): Unknown modifier ']'
?>
Escaping them solves it:
<?php
preg_match('{[\{]}', ''); // OK
preg_match('{[}]}', ''); // OK
preg_match('{[\}\{]}', ''); // OK
?>Делимитери
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Делимитери
Референца за `regexp.reference.delimiters.php` со подобрена типографија и навигација.
Делимитери
Кога ги користите PCRE функциите, потребно е шаблонот да биде затворен со delimitersПри користење на PCRE функциите, потребно е шаблонот да биде опкружен со ". Делимитер може да биде кој било не-алфанумерички, не-обратна коса црта, не-празен знак. Водечките празни места пред валиден делимитер се тивко игнорирани.
Често користени делимитери се коси црти ("), знаци за хаштаг (") и тилди ("). Следниве се сите примери на валидни ограничени шаблони./Исто така е можно да се користат делимитери во стил на загради каде што отворачките и затворачките загради се почетниот и завршниот делимитер, соодветно.#се сите валидни парови на делимитери во стил на загради.~Делимитерите во стил на загради не треба да се избегнуваат кога се користат како мета-знаци во шаблонот, но како и со другите делимитери, тие мора да се избегнат кога се користат како буквални знаци.
/foo bar/ #^[^0-9]$# +php+ %[a-zA-Z0-9_-]%
Ако делимитер треба да се совпадне во шаблонот, тој мора да се избегне со помош на обратна коса црта. Ако делимитер често се појавува во шаблонот, добра идеја е да се избере друг делимитер за да се зголеми читливоста. (),
{}, [] and <>
функцијата може да се користи за избегнување на стринг за инјектирање во шаблон и нејзиниот опционален втор параметар може да се користи за специфицирање на делимитер што треба да се избегне.
(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
модификатори на шаблонот
/http:\/\// #http://#
Revo Munin Мета-знаци
#[a-z]#i
Белешки од корисници 3 белешки
Note that angle brackets `<>` shouldn't be used as delimiters whenever you will have to invoke advanced clusters like atomic groups or lookbehinds because their including angle bracket doesn't come in pair and escaping doesn't help either.