хочу разбить строку типа 'lalala?pupupu' через preg_match_all на две части. до вопросительного знака и после. =) вопросительный знак может быть а может и не быть после него текст может быть а может и не быть. вот это не работает: Код (Text): /(.+)\??(.*)/ где грабли?
.+ - жадная часть выражения, а поскольку знак вопроса попадает под точку, то он первым захватывает вопрос, и для \?? его уже не остается. Вместо точки надо использовать маску любого символа, кроме вопроса Код (Text): preg_match_all('/([^?]+)\??(.*)/', 'aaa?bbb', $matches); var_dump($matches);