Düzenli ifadelerde parantez Amacı

3 Cevap php

i düzenli ifade () anlamamıza yok.

örn. bu çizgiler arasındaki fark nedir:

"/hello/"
"/(hello)/"

3 Cevap

Bunu sarma (ve) ile onu yakalayabilir ve bir bütün olarak ele. Biz şu metin var varsayalım:

merhaba hellohello!

Ben iki Kullanıcının kelime "merhaba" bulmak istedim, ben bunu:

/hellohello/

Ya da, ben bunu:

/(hello){2}/

() Eşleşmelerini yakalamak ve gruplama için here daha tam bir açıklama için bir göz atın bir yol sağlar.

Bunu yazdığım gibi, iki örnek arasında hiçbir gerçek fark yoktur. Ancak parantezler içerebilecektir bir örnek olarak kullanılan başka bir poster olarak, {2} sonra devlet istiyorsunuz karakter ki tüm gruba (örneğin post-mantığını uygulamak için izin dize "merhaba" arasında herhangi bir şey olmadan bir iki kez üst üste yazılır - hellohello . merhaba YA veda YA maç olacak | "/ / (güle güle merhaba)" - parantezlarin da ifadeleri kullanmak "veya" izin verir.

Bunlardan en güçlü kullanımı, ancak yerine sadece bunu eşleştirmek yerine, bir dize veri çekme olduğu, bu dize dışında veri çekme ve onunla istediğinizi yapmanızı sağlar.

örneğin PHP görseydiniz

preg_replace( "/hello (.+)/i", "hello how are you?", $holder );`

Sonra $ tutucu [1] Bu durumda olurdu, "merhaba" sonra TÜM metni içerecektir "nasılsın?"