When using the (?i:foo) syntax, it appears that the group is not included in the 'matches' argument unless it is nested in an additional set of parenthesis, for example: ((?i:foo))Внатрешно поставување на опции
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Внатрешно поставување на опции
Референца за `regexp.reference.internal-options.php` со подобрена типографија и навигација.
Внатрешно поставување на опции
The settings of PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY, PCRE_EXTRA, PCRE_EXTENDED Поставките на
i |
for PCRE_CASELESS |
m |
for PCRE_MULTILINE |
s |
for PCRE_DOTALL |
x |
for PCRE_EXTENDED |
U |
for PCRE_UNGREEDY |
X |
for PCRE_EXTRA Внатрешни опции букви |
J |
for PCRE_INFO_JCHANGED |
(веќе не се поддржани од PHP 7.3.0) PCRE_CASELESS and PCRE_MULTILINE На пример, (?im) поставува случајно-неосетливо (caseless), повеќелиниско совпаѓање. Исто така е можно да се откажат овие опции со претставување на буквата со цртичка, и комбинирано поставување и откажување како (?im-sx), што поставува PCRE_DOTALL and PCRE_EXTENDEDдодека откажува
, исто така е дозволено. Ако буква се појави и пред и по цртичката, опцијата се откажува. /ab(?i)c/ Кога промена на опција се случува на врвно ниво (тоа е, не внатре во загради на под-образец), промената се применува на остатокот од образецот што следи. Така
совпаѓа само "abc" и "abC".
(a(?i)b)c
Ако промена на опција се случи внатре во под-образец, ефектот е различен. Ова е промена на однесувањето во Perl 5.005. Промена на опција внатре во под-образец влијае само на тој дел од под-образецот што следи по него, така PCRE_CASELESS совпаѓа "abc" и "aBc" и ниту еден друг стринг (претпоставувајќи
(a(?i)b|c)
не се користи). На овој начин, опциите може да имаат различни поставки во различни делови на образецот. Сите промени направени во една алтернатива се пренесуваат во следните гранки во рамките на истиот под-образец. На пример,
совпаѓа "ab", "aB", "c", и "C", дури и кога при совпаѓање "C" првата гранка се напушта пред поставувањето на опцијата. Ова е затоа што ефектите од поставувањето на опциите се случуваат при време на компилација. Инаку би имало некои многу чудни однесувања. PCRE_UNGREEDY and PCRE_EXTRA Специфичните опции на PCRE
Белешки од корисници 2 забелешки
There is also the possibility to enable Modifier only on a specific group, so that the Modifier doesn't stay valid until end or deactivation with "(?-<modifier>)".
The Syntax for that is "?<modifier>:" on the beginning of the group, i.e. (?i:foo) matches on FoO.