、私はPHP preg_replace
機能を使用しますし、あなたがそれに応じて適応することができます。
$truncated = preg_replace('/^(.{100}.*?\.).*$/s', '$1', $long);
編集:私は、構文は全体の事などを処理する出力にハイライト表示してアップだかわかりません文字列、それはプレビューでは正常に見えます。
と小数点と数字を壊すない程度スマートにしようとする別のバージョン、(または他の場所期間の文の終わり以外のどこかに発生する可能性があります):
$truncated = preg_replace('/^(.{100}.*?\.(?![a-z0-9])).*$/s', '$1', $long);
説明:
- 保存したい部分は括弧でグループ化されています。
- あなたは少なくとも100文字おこう:あなたは、最初の小数点までの任意の次の文字をしておこう
.{100}
- を:
- 番目のバージョンでは、私は-which意志負lookahead-
(?![a-z0-9])
を使用期間文字の後に数字または文字が続く場合は、最後の部分を次の小数点以下の桁まで続けます。
- ドットは改行(パターンの末尾にある
s
修飾子)と一致します。 Movable Typeのregex_replace
関数がデリミタなしのパターン(先行スラッシュと私のパターンの末尾に/s
)を取る場合は、代わりに(?s)
をパターンの先頭に使用することができます。
- 置換された最初のグループを維持するために、置換で
$1
を使用してください。