PHP


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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/03/20 20:39:14
  • 終了:2012/03/27 20:40:03

回答(2件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492012/03/20 22:09:57

ポイント50pt

一例

<?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。】
)
id:HowAreYou No.2

HowAreYou回答回数91ベストアンサー獲得回数172012/03/20 23:09:07

ポイント50pt
<?
$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) ;

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません