Düzenli ifadeler için kullanılabilecek değiştiriciler

Mevcut olası PCRE değiştiricileri aşağıda listelenmiştir. Yaylı ayraçlar içinde belirtilen isimler bu değiştiricilerin dahili PCRE isimleridir. Değiştiricilerdeki boşluklar va satırsonu karakterleri yok sayılır, diğer karakterler ise hataya sebep olur.

i (PCRE_CASELESS)
Bu değiştirici etkin olursa şablondaki harfler hem küçük hem de büyük harflerle eşleşir.
m (PCRE_MULTILINE)
PCRE öntanımlı olarak, eşleşmeye konu dizgeyi karakterlerden oluşan tek bir satır olarak ele alır (satırsonu karakter ile bitmese bile). "Satır başlangıcıyla eşleşme işleci" olan ^ karakteri dizgenin başlangıcıyla, "satır sonuyla eşleşme işleci" olan $ karakteri ise dizgenin sonu ile veya (D değiştiricisi belirtilmedikçe) satırı sonlandıran satırsonu karakterinin öncesiyle eşleşir. Bu. Perl'de de böyledir. Bu değiştiricinin etkin olduğu durumda, satır başı ve satır sonu ile eşleşme işleçleri, dizgenin başı ve sonu ile eşleşmenin yanında satırsonu karakterinin (sırasıyla) sonrası ve öncesiyle de eşleşir. Bu değiştirici Perl'in \m değiştiricisine eşdeğerdir. Eğer eşleşmeye konu dizge "satırsonu karakteri "\n" içermiyorsa veya şablonda ^ veya $ işleçleri kullanılmamışsa bu değiştiricinin bir etkisi olmayacaktır.
s (PCRE_DOTALL)
Bu değiştirici etkin olduğunda şablondaki nokta işleci, satırsonu karakteri dahil tüm karakterlerle eşleşir. Etkin olmadığı takdirde satırsonu karakterleri dışlanır. Bu değiştirici Perl'ün \s değiştiricisine eşdeğerdir. [^a] gibi olumsuz bir sınıf, bu değiştiriciden bağımsız olarak daima satırsonu karateriyle eşleşir.
x (PCRE_EXTENDED)
Bu değiştirici etkin olduğunda şablondaki boşluk karakterleri, öncelenmedikçe veya bir karakter sınıfı içinde yer almadıkça tamamen yoksayıldıkları gibi, bir karakter sınıfının dışında öncelenMEmiş bir # ve sonraki satırsonu karakteri arasındaki karakterlerin tamamı ile satırsonu karakteri de yoksayılır. Bu değiştirici Perl'ün \x değiştiricisine eşdeğerdir ve karmaşık şablonların içine açıklamalar konmasını mümkün kılar. Ancak, bunun sadece veri karakterlerine uygulanmakta oluşuna dikkat ediniz. Boşluk karakterleri, bir şablonda özel karakter dizilimlerinin içinde bulunamazlar; örneğin, bir koşullu alt şablon başlatan (?( dizilimi içinde bulunamazlar.
A (PCRE_ANCHORED)
Bu değiştirici etkin olduğunda, şablon demirlemeye zolanır yani, şablon eşleşmeye konu dizgenin sadece başlangıcı ile eşleşmeye zorlanır. Bu etki, şablonun içindeki oluşumlarla da sağlanabilir ve Perl'de bunu yapmanın başka yolu yoktur.
D (PCRE_DOLLAR_ENDONLY)
Bu değiştirici etkin olduğunda, şablondaki dolar işleci eşleşmeye konu dizgenin sadece sonu ile eşleşir. Bu değiştirici olmaksızın dolar işleci, satır sonlandıran karakter satırsonu karakteri olduğu takdirde sonuncu satır sonu karakterinin (daha öncekilerin değil) hemen öncesi ile eşleşir. m değiştiricisi etkin olduğunda bu değiştirici yok sayılır. Perl'de bu değiştiricinin eşdeğeri yoktur.
S
Bir şablon defalarca eşleştirilmeye çalışılıyorsa, eşleşme için harcanan zamanı kısaltmak için çözümlemeye harcanan zamanı arttırmak en iyi çözümdür. Bu değiştirici etkin olduğunda ek çözümlemeler yapılır. Halihazırda bu sadece, şablonu tek bir başlangıç karakteriyle eşleşmeye zorlayan demirli şablonlar hariçindeki şablonlar için yararlı olmaktadır.
U (PCRE_UNGREEDY)
Bu değiştirici etkin olduğunda, niceleyicilerin açgözlülüğü tersine çevirir. Böylece, ardlarına bir "?" konmadıkça niceleyiciler öntanımlı olarak açgözlü olmaz. Bu değiştirici Perl ile uyumlu değildir. Ayrıca, değiştirici şablon içinde de (?U ile) etkin kılılınabileceği gibi niceleyicinin ardına bir soru işareti konarak da (.*? gibi) bu sağlanabilir.

Bilginize:

Normalde, isteksiz kipte pcre.backtrack_limit karakterden fazlasıyla eşleşme mümkün değildir.

X (PCRE_EXTRA)
Bu değiştirici PCRE'nin Perl ile uyumlu olmayan bir işlevselliğini açıp kapamakta kullanılır. Bir şablonda tersbölü ile öncelenmiş bir karakter özel bir anlama sahip değilse hataya sebep olur. Bu davranış, gelecekteki yorumlamalar için böyle tasarlanmıştır. Perl'de öntanımlı olarak, özel anlamı olmayan tersbölü ile öncelenmiş karakterler kendileri olarak ele alınırlar. Bu değiştiriciden etkilenen bir değiştirici henüz yoktur.
J (PCRE_INFO_JCHANGED)
(?J) dahili seçenek ayarı yerel PCRE_DUPNAMES seçeneğini değiştirerek isimlerin alt şablonlarda tekrarlanmasını mümkün kılar. PHP 7.2.0 ve sonrasında, J aynı zamanda değiştirici olarak da desteklenmekedir.
u (PCRE_UTF8)
Bu değiştirici PCRE'nin Perl ile uyumlu olmayan bir işlevselliğini etkin kılarak şablon ve konu dizgelerinin karakter kodlamasının UTF-8 olduğunun varsayılmasını sağlar. Geçersiz bir konu, preg_* işlevlerinin hiçbir şeyle eşleşmemesine neden olur; geçersiz bir kalıp E_WARNING seviyesinde bir hatayı tetikleyecektir. Beş ve altı sekizlikli UTF-8 karakterler geçersiz yanıt olarak kabul edilir.
n (PCRE_NO_AUTO_CAPTURE)
Bu değiştirici, basit (xyz) grupları yakalanmaz hale getirir. Yalnızca (?<ad>xyz) gibi adlandırılmış gruplar yakalanır. Bu yalnızca hangi grupların yakalandığını etkiler, yine de numaralandırılmış alt kalıp başvurularını kullanmak mümkündür ve eşleşme dizisi yine de numaralandırılmış sonuçları içerir.
To Top