2015-07-31 2 views
1

Я нашел функцию онлайн, которая усекает строку до определенного количества символов. Он использует preg_replace, чтобы найти конец строки, чтобы она не отрезала строковое среднее слово.Общие сведения об усечении строки регулярного выражения

У меня возникли проблемы с пониманием шаблона и что именно он является соответствием

return preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length)) . $tail; 

Я понимаю, что \ S выглядит для белого пространства и \ S ищет непробельный, но не может понять, как именно он работает

+0

оно соответствует последнему слову в вашей строке – anonymous

ответ

2

Это регулярное выражение разрезает последнее неполное (или полное) слово в строке.

Предположим, что строка «Быстрая коричневая лиса прыгает через ленивую собаку». И мы перерезали строку «Быстрая коричневая лисица прыгает». Затем /\s+?(\S+)?$/ будет соответствовать «over» и заменить его пустой строкой.

Так что I have found a function online that truncates a string to a certain amount of characters. не совсем верно. Он усекает строку до некоторого количества символов , а затем определенное количество символов. И, очевидно, если есть очень длинное слово, оно, к сожалению, усекает его до пустой строки.

Смежные вопросы