It is fairy a common task to cut a string - ie when a teaser text should not be longer than n characters. A lot of people use substring() or substr(), depending on their favourite language. However with regex it is really easy and you do not need to cut a word:
// in php it would be:
preg_match("/(.{1,15}(\s))/", $yourString, $matches);
// or in java something like this - maybe ; )
Pattern myPattern = Pattern.compile((.{1,15}(\\s)));
Matcher myMatch = myPattern.matcher(yourString);
To put it in plain english:
- get the first 15 characters (same as substring)
- BUT - and here goes the magic: match less until you find a whitespace character and cut the rest.
So it could look like this in php:
<?php
// you could check the length of the string but actually you don't need to ...
$myString = "People seem to enjoy things more when they know a lot of other people have been left out of the pleasure.";
preg_match("/(.{1,15}(\s))/", $yourString, $matches);
echo $matches[0]." ...";
// would print:
// People seem to ...
// and with {1,27}
// People seem to enjoy things ...
?>
beer o'clock! cheers :)