PHP Normal İfadeler
Normal İfade nedir?
Normal ifade, bir arama kalıbı oluşturan bir karakter dizisidir. Bir metinde veri aradığınızda, aradığınız şeyi açıklamak için bu arama modelini kullanabilirsiniz.
Normal ifade, tek bir karakter veya daha karmaşık bir kalıp olabilir.
Normal ifadeler, her tür metin arama ve metin değiştirme işlemlerini gerçekleştirmek için kullanılabilir.
Sözdizimi
PHP'de düzenli ifadeler, sınırlayıcılardan, bir kalıptan ve isteğe bağlı değiştiricilerden oluşan dizelerdir.
$exp = "/w3schools/i";
Yukarıdaki örnekte /
, sınırlayıcıdır , w3schools aranan kalıptır ve aramayı büyük/küçük harfe duyarlı olmayan i
bir değiştiricidir .
Sınırlayıcı, harf, sayı, ters eğik çizgi veya boşluk olmayan herhangi bir karakter olabilir. En yaygın sınırlayıcı eğik çizgidir (/), ancak deseniniz eğik çizgi içerdiğinde # veya ~ gibi diğer sınırlayıcıları seçmek uygundur.
Normal İfade İşlevleri
PHP, düzenli ifadeler kullanmanıza izin veren çeşitli işlevler sağlar. ,
preg_match()
ve işlevleri preg_match_all()
en preg_replace()
sık kullanılanlardan bazılarıdır:
Function | Description |
---|---|
preg_match() | Returns 1 if the pattern was found in the string and 0 if not |
preg_match_all() | Returns the number of times the pattern was found in the string, which may also be 0 |
preg_replace() | Returns a new string where matched patterns have been replaced with another string |
preg_match() kullanma
İşlev preg_match()
, bir dizgenin bir modelin eşleşmelerini içerip içermediğini size söyleyecektir.
Örnek
Bir dizede "w3schools" için büyük/küçük harfe duyarlı olmayan bir arama yapmak için normal bir ifade kullanın:
<?php
$str = "Visit W3Schools";
$pattern = "/w3schools/i";
echo
preg_match($pattern, $str); // Outputs 1
?>
preg_match_all() kullanma
İşlev preg_match_all()
, bir dizgedeki bir kalıp için kaç tane eşleşme bulunduğunu size söyleyecektir.
Örnek
Bir dizede "ain" oluşumunun büyük/küçük harf duyarlı olmayan bir sayımını yapmak için normal bir ifade kullanın:
<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str); // Outputs 4
?>
preg_replace() kullanma
İşlev preg_replace()
, bir dizedeki kalıbın tüm eşleşmelerini başka bir dizeyle değiştirir.
Örnek
Bir dizede Microsoft'u W3Schools ile değiştirmek için büyük/küçük harfe duyarsız bir normal ifade kullanın:
<?php
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo
preg_replace($pattern, "W3Schools", $str); // Outputs "Visit
W3Schools!"
?>
Normal İfade Değiştiricileri
Değiştiriciler, bir aramanın nasıl yapıldığını değiştirebilir.
Modifier | Description |
---|---|
i | Performs a case-insensitive search |
m | Performs a multiline search (patterns that search for the beginning or end of a string will match the beginning or end of each line) |
u | Enables correct matching of UTF-8 encoded patterns |
Normal İfade Kalıpları
Parantezler bir dizi karakter bulmak için kullanılır:
Expression | Description |
---|---|
[abc] | Find one character from the options between the brackets |
[^abc] | Find any character NOT between the brackets |
[0-9] | Find one character from the range 0 to 9 |
meta karakterler
Meta karakterler, özel bir anlamı olan karakterlerdir:
Metacharacter | Description |
---|---|
| | Find a match for any one of the patterns separated by | as in: cat|dog|fish |
. | Find just one instance of any character |
^ | Finds a match as the beginning of a string as in: ^Hello |
$ | Finds a match at the end of the string as in: World$ |
\d | Find a digit |
\s | Find a whitespace character |
\b | Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b |
\uxxxx | Find the Unicode character specified by the hexadecimal number xxxx |
niceleyiciler
Niceleyiciler miktarları tanımlar:
Quantifier | Description |
---|---|
n+ | Matches any string that contains at least one n |
n* | Matches any string that contains zero or more occurrences of n |
n? | Matches any string that contains zero or one occurrences of n |
n{x} | Matches any string that contains a sequence of X n's |
n{x,y} | Matches any string that contains a sequence of X to Y n's |
n{x,} | Matches any string that contains a sequence of at least X n's |
Not: İfadenizin özel karakterlerden birini araması gerekiyorsa, onlardan kaçmak için ters eğik çizgi ( \ ) kullanabilirsiniz. Örneğin, bir veya daha fazla soru işareti aramak için aşağıdaki ifadeyi kullanabilirsiniz: $pattern = '/\?+/';
gruplama
( )
Tüm desenlere nicelik belirteçleri uygulamak için parantezleri kullanabilirsiniz . Ayrıca, eşleşme olarak kullanılacak desen parçalarını seçmek için de kullanılabilirler.
Örnek
"muz" kelimesini aramak için gruplamayı kullanarak ba'yı ve ardından iki na örneğini arayın :
<?php
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo
preg_match($pattern, $str); // Outputs 1
?>
RegExp Referansını Tamamlayın
Tam bir referans için, Tam PHP Normal İfade Referansımıza gidin .
Referans, tüm Normal İfade işlevlerinin açıklamalarını ve örneklerini içerir.