Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Регулярка с условием
Форумы портала PHP.SU » PHP » Регулярные выражения » Регулярка с условием

Страниц (1): [1]
 

1. phpcode83 - 05 Августа, 2015 - 10:11:29 - перейти к сообщению
Всем привет. Помогите с регуляркой.
требуется вырезать из текста ненужные строки оставляя нужное.

Конкретный пример:
Строка: [BRAND] Наклейка на стекло "полоса", цвет синий
Применяю регулярку: /] (.*), цвет/

Получается все как надо: Наклейка на стекло "полоса"

Но если у меня текст: [BRAND] Наклейка на стекло "полоса"
То результат пустой.

Как сделать чтобы работало в обоих случаях. Т.е. чтобы вырезалось до ", цвет" либо до конца строки если не нашлось совпадения с ", цвет"?
2. DeepVarvar - 05 Августа, 2015 - 10:37:25 - перейти к сообщению
А не проще ли через strpos/strrpos?
3. Мелкий - 05 Августа, 2015 - 10:39:04 - перейти к сообщению
phpcode83 пишет:
вырезалось до ", цвет" либо до конца строки

(?:, цвет|$)
4. phpcode83 - 05 Августа, 2015 - 11:01:21 - перейти к сообщению
DeepVarvar пишет:
А не проще ли через strpos/strrpos?

Не, это больше кода. Да и тем более у меня регулярка задается не в коде а в свойстве. Для разных разделов разные регулярки применяются.
(Добавление)
Мелкий пишет:
(?:, цвет|$)


Спасибо, а как это применить полностью в регулярном выражении?

 

Powered by ExBB FM 1.0 RC1