Реализуйте границы слов с помощью чередования регулярных выражений и слов, которые могут не начинаться/не заканчиваться ⇐ 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().
У меня есть следующий код:
//Массив, заполненный данными из внешнего файла $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().
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение