[過去ログ] 正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g (989レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
761
(1): 759 04/10/12 03:17 ID:??? AAS
[\xf3-\xf7][\x40-\xfc]は絵文字の文字コードってことで良いかな。
sjisの漢字の範囲は[\x81-\x9F\xE0-\xEF][\x40-\x7E\x80-\xFC]じゃない?

てなわけで、とりあえずこれ。
/($sjis)([\xf3-\xf7][\x40-\xfc])/e

でも、これでは絵文字が連続した場合は変換できない。

やはり、どこが1バイト目か2バイト目か分かるように、
あらかじめ明確に文字を区切らなきゃいけないっぽい。

$text = preg_replace("/($sjis)/", "$1 ", $text);
$text = preg_replace("/([\xf3-\xf7][\x40-\xfc])\s/e", "'['.bin2hex(\\1).'] '", $text);
省2
768: 758 04/10/12 23:07 ID:??? AAS
あ、書き忘れていました orz
>>761で教えていただいた方法ですが、

$text="今日はカレーだ♪るんるん♪マ"; // 最後の文字は SJISコードF6CFの絵文字
$text = preg_replace("/($sjis)/", "\\1 ", $text);
$text = preg_replace("/([\xf3-\xf7][\x40-\xfc])\s/e", "'['.bin2hex(\\1).']'", $text);
print $text; // ←'今 日 は カ レ ー だ ♪ る ん る ん ♪ [f6cf]'

となって、文字ごとにスペースが入ってしまい、
そうかと言って
2行目を $text = preg_replace("/($sjis)/", "\\1", $text); に変えたら
'今日はカレーだ♪るんるん♪マ'(変化無し)という状況です・・・。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s