人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP

質問が長くなりましたので、http://d.hatena.ne.jp/esecua/20120320 をご覧下さい。

●質問者: esecua
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど
●50ポイント

一例

<?php
$t = 'ほげほげ。ほえごほほっじょ。じおじおじおじぇふぇ。ふぇひふいふいへうり、でふいふいえf。';

// 。の出現数
$c = preg_match_all('/。/', $t, $m);
echo $c;
echo "\n";

// 2文毎に区切る
$c = preg_match_all('/(.*。.*。)/U', $t, $m);
print_r($m);

// 2文毎に区切って、それぞれ【】で囲む
$m = preg_split("/\n/", rtrim( preg_replace('!(.*。.*。)!U', "【$1】\n", $t), "\n"));
print_r($m);

実行結果

4
Array
(
 [0] => Array
 (
 [0] => ほげほげ。ほえごほほっじょ。
 [1] => じおじおじおじぇふぇ。ふぇひふいふいへうり、でふいふいえf。
 )

 [1] => Array
 (
 [0] => ほげほげ。ほえごほほっじょ。
 [1] => じおじおじおじぇふぇ。ふぇひふいふいへうり、でふいふいえf。
 )

)
Array
(
 [0] => 【ほげほげ。ほえごほほっじょ。】
 [1] => 【じおじおじおじぇふぇ。ふぇひふいふいへうり、でふいふいえf。】
)

2 ● HowAreYou
●50ポイント
<?
$str = 'ほげほげ。ほえごほほっじょ。じおじおじおじぇふぇ。ふぇひふいふいへうり、でふいふいえf。' ;

echo "「。」の数\n" ;
echo substr_count($str, '') ;

echo "\n\n2文毎を【?】で区切る\n" ;
preg_match_all('/.*?。.*?。/u', $str, $m) ;
$a = array_map(create_function('$v', 'return "【".$v."】";'),
 $m[0]) ;

print_r($a) ;


出力例

「。」の数
4

2文毎を【?】で区切る
Array
(
 [0] => 【ほげほげ。ほえごほほっじょ。】
 [1] => 【じおじおじおじぇふぇ。ふぇひふいふいへうり、でふいふいえf。】
)


追記。
奇数時の挙動がどうなればいいのかわりませんが。
あと「。」で終わっていない場合も含めるようにしました。

<?php
$str = 'ほげほげ。ほえごほほっじょ。じおじおじおじぇふぇ。ふぇひふいふいへうり、でふいふいえf。ごにょごにょ。' ;

echo "2文毎を【?】で区切る\n" ;
preg_match_all('/(.*?。.*?。)|(.+$)/u', $str, $m) ;
$a = array_map(create_function('$v', 'return "【".$v."】";'),
 $m[0]) ;

print_r($a) ;
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ