PHP Matematik Denklem Düzenli İfade

2 Cevap php

Ben matematiksel denklemler (>, <, =, <=, >=, !=) anlayan normal bir ifade oluşturmak için çalışıyorum. Hangi oldukça basit bir şeydir. Ben ile geldi:

/(.*)([!<>][=]|[<>=])(.*)/

I preg_match ile PHP, bu regex kullandığınızda denklemi Ama eğer, XYZ!=ABC, sadece = ile eşleşir. O şu anda sağa, soldan bulunan ilk ifadeyi maç olmamalıdır !=? Mayın çözüm yanlış-hangi görünüyor yani eğer-, Herkes bana neden söyleyebilir?

Şimdiden teşekkürler.

2 Cevap

(.*) tembel yapmak; Devam edebilmesi için (.*?), bu az olası karakterleri maç olacak.

Şimdi ne var yani, açgözlü olduğunu. * Ifadesini, maç olduğunu uzun tamamlamak için birçok karakter olabildiğince maç olacak ilk bölümü XYZ!, ve sonra {[eşleşmesi gerekir ( 1)]} devam etmek için, ikinci parça olarak.

* (. *) Ilk XYZ açgözlü maçlar olduğunu! ([<>] [=] | [<> =]) = daha sonra ikinci ardalanması ile eşleşen böylece maç tutar. En soldaki çözümü sadece bir bütün olarak ifade için de geçerlidir, burada dikkat edilmesi gereken kural açgözlü operatörler ilk gelen ilk hizmet söz konusu olduğunda olmasıdır.