Matematik problemlerini denemek ve yakalamak için preg_match()
kullanıyorum ama sadece kısmen çalışıyor. “Artı” ve “son” olanı yakalasa da, bir sebepten ötürü ilk olanı yakalamaz. Neyi yanlış yapıyorum?Basit matematik problemlerini yakalamak için Preg_match
$string = "one plus one";
if (preg_match("~([0-9]|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen|twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|hundred|thousand|million|\-|)+(\+|\-|\*|\/|plus|add|minus|subtract|time|multiply|divide)([0-9]|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen|twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|hundred|thousand|million|\-|)+~", $string, $match)) {
print_r($match);
}
Sonuç:
Array ([0] => one plus one [1] => [2] => plus [3] => one)
Beklenen Sonuç:
Array ([0] => one plus one [1] => one [2] => plus [3] => one)
tekrarlanan yakalar saklanmaz. Her tekrarda, yakalama grubu içeriğinin yenisi ile üzerine yazılır. –
@CasimiretHippolyte Peki bunu nasıl yapacağız? – frosty