Реализуйте границы слов с помощью чередования регулярных выражений и слов, которые могут не начинаться/не заканчиваться Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Реализуйте границы слов с помощью чередования регулярных выражений и слов, которые могут не начинаться/не заканчиваться

Сообщение Гость »


У меня есть следующий код:

//Массив, заполненный данными из внешнего файла $patterns = array('!test!', 'stuff1', 'all!!', ''); //Удалить пустые значения в массиве $patterns = array_filter($patterns); foreach($patterns как &$item){ $item = preg_quote($item); } $pattern = '/(\b|^|- |--|-)(?:'.implode('|', $patterns).')(-|--| -|\b|$)/i '; $clid = "Я !test! Stuff1 all!! string"; эхо $клид; $clid = Trim(preg_replace($pattern, '', $clid)); эхо $клид; Выход:

//Я !test! фигня1 все!! нить //Я !тест! все!! нить Я экранирую ! с помощью preg_quote(), так почему?

У меня была вторая проблема, которая сейчас решена, но я не знаю, почему это произошло. Предположим, $clid = "Я Йорг Мюллер со специальными символами". Если я удалю строку кода $patterns = array_filter($patterns);, то вывод после preg_replace() будет I am J. Не могу понять почему, но я решил проблему с помощью array_filter().
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»