Я знаю, что есть, если/тогда в подгонке регулярных выражений, но есть ли в замене?preg_replace условная замена с помощью другой строки
ie. Я хочу сделать в одном из регулярных выражений
"У меня есть Foo Бары под 5 $ для продажи", чтобы быть "Foo Bars ~ $ 5"
"У меня есть Foo бары для продажи", чтобы стать "Foo Барс" и НЕ «Foo Bars ~»
у меня есть выражение немного, как это на данный момент:
preg_replace("/(([A-Z][a-z]*\s){1,3})((under .)\d+)?/","$1~$4",$str);
(с другими битами, чтобы удалить другой текст Aswell конечно!) но тха t включает ~ даже когда в нем нет «под».
Я мог бы, вероятно, использовать preg_replace_callback, но это кажется немного OTT
Спасибо.
Почему бы не сравнить строки в PHP, то есть различные выражения preg_replace для них? Я не понимаю, почему вы ищете сложный способ решения простого решения. – theAlexPoon
Да, в моем примере я мог это сделать, но то, что я пытаюсь сделать, включает в себя синтаксический анализ страницы текста, и мне бы хотелось сделать это в одном регулярном выражении, если это возможно – Vortigern