文字列に全角カタカナがあれば、カウントするという仕組みを

作成したいのですが、どうすればいいでしょうか?
$str = "コですコ";
または
$str = "ココです";

$length=0;
if(preg_match("/^[ァ-ヶ]+/", $str ,$mat ,PREG_SET_ORDER) > 0){
}
var_dump(count($mat));
でうまく、カタカナが取り出せません。どうしたらいいのでしょうか?

出力は2という風に表示したいです。

回答の条件
  • 1人5回まで
  • 登録:2008/05/27 16:30:36
  • 終了:2008/06/03 16:35:03

回答(1件)

id:GoldenDawn No.1

GoldenDawn回答回数426ベストアンサー獲得回数812008/05/27 17:27:16

ポイント60pt

/^[ァ-ヶ]+/

このパターンは「^」があるので文字列の先頭でなければマッチしません。

さらに、「+」があるので「ココ」のように連続したカタカナには一回しかマッチしません。

また、この場合に使うのは preg_match ではなく preg_match_all です (PREG_SET_ORDER は preg_match では無効)。


例えば次のように (文字コードが UTF-8 の場合。)。

preg_match_all("/[ァ-ヶ]/u", $str ,$mat ,PREG_SET_ORDER)

(「[ァ-ヶ]」という範囲指定が妥当かは検証していません)

コメントはまだありません

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

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

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

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