$strings = array("address=test","number>20","age<=55");
foreach($strings as $s)
{
preg_match('/([^=!<>]+)(=|==|!=|<|>|>=|<=)([^=!<>]+)/', $s, $matches);
echo 'Left: ',$matches[1],"\n";
echo 'Seperator: ',$matches[2],"\n";
echo 'Right: ',$matches[3],"\n\n";
}
Выходы:
Left: address
Seperator: =
Right: test
Left: number
Seperator: >
Right: 20
Left: age
Seperator: <=
Right: 55
Редактировать: Этот метод, использующий [^ =! <>], Предпочитает, чтобы метод полностью завершался с ошибками, а не с неожиданными результатами. Это означает, что foo=bar<3
не будет распознан. Конечно, это можно изменить в соответствии с вашими потребностями: -).