Regex s değiştirici, çalışmıyor?

2 Cevap

Tamam, ben regex bir çaylak değilim ve benim regex astar için bu siteyi kullanıyorum:

Soru: s değiştirici kullanarak bu 4 satır karakterleri bulmuş gibi, aşağıdaki kod 4 yankı varsayalım.

Ben bu çalıştırdığınızda Ancak, ben bir (1), neden olsun?

link text

 <?php
 /*** create a string with new line characters ***/
    $string = 'sex'."\n".'at'."\n".'noon'."\n".'taxes'."\n";

    /*** look for a match using s modifier ***/
    echo preg_match("/sex.at.noon/s", $string, $matches);

    /*The above code will echo 4 as it has found 4 newline characters.*/

?>

2 Cevap

Bu desen eşleşen sonra ilk kez durur çünkü preg_match() sadece hiç 0 veya 1 dönecektir. Eğer kullanırsanız, model sadece karşı eşleşen konum dize kez eşleştiği için preg_match_all() hala 1 dönecektir.

Eğer regex yoluyla satırsonlarının sayısını isterseniz:

echo preg_match_all("/\n/m", $string, $matches);

Veya dize fonksiyonları ile:

echo substr_count($string, "\n");