理解正则表达式截断字符串

时间:2015-07-31 14:33:24

标签: php regex string

我在网上发现了一个将字符串截断为一定数量字符的函数。它使用preg_replace来查找字符串的结尾,因此它不会切断字符串中间字。

我在理解模式时遇到了问题,以及它与之匹配的是什么

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

我得到了\ s寻找空白区域和\ S寻找非白色空间,但无法弄清楚它是如何工作的

1 个答案:

答案 0 :(得分:2)

此正则表达式会删除字符串中最后一个不完整(或完整)的单词。

让我们说字符串是"快速的棕色狐狸跳过懒狗"。然后我们把绳子切成了#34;快速的棕色狐狸跳了起来"。然后/\s+?(\S+)?$/将匹配"在"并用空字符串替换它。

所以I have found a function online that truncates a string to a certain amount of characters.并不完全正确。它会将字符串截断为一定数量的字符少于一定数量的字符。很明显,如果有一个很长的单词,它将不幸地将其截断为空字符串。