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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
762
(1): 04/10/12 14:09 ID:oX6FVXHm(1) AAS
AA省
763: 04/10/12 14:22 ID:??? AAS
>>762
外部リンク[htm]:homepage1.nifty.com
764: 04/10/12 14:39 ID:??? AAS
AA省
765: 759 04/10/12 14:52 ID:??? AAS
漏れならこうだな。
/((?:\x82[\x4F-\x58])+)/
766: 04/10/12 20:54 ID:??? AAS
Shift_JISか。。。
767: 758 04/10/12 22:55 ID:c8Tbm8wX(1) AAS
>>759
レスありがとうございます。
ちょっと質問がわかりにくくてすみません。
具体例を出すと、以下のような感じです。

$sjis='[\x81-\x9F\xE0-\xEF][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]';
$text="今日はカレーだ♪るんるん♪";
$text=preg_replace("/((?:$sjis)*?)([\xf3-\xf7][\x40-\xfc])/e","'\\1['.bin2hex('\\2').']'",$text);
print $text;  // ← '今日はカレーだーf482]驍るん'

それで、昨日からいろいろ試したところ、
$text=preg_replace("/\G((?:$sjis)*?)([\xf3-\xf7][\x40-\xfc])/e","'\\1['.bin2hex('\\2').']'",$text);
省4
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); に変えたら
'今日はカレーだ♪るんるん♪マ'(変化無し)という状況です・・・。
769
(1): 04/10/13 19:34 ID:??? AAS
ダブルコーテーションの内側にある"を全て\"にエスケープするには、どのように置換すればよろしいでしょうか?
$text = '$a = "foo"bar"; $b = "hoge"huga"hage";';
これを'$a = "foo\"bar"; $b = "hoge\"huga\"hage";'にしたいです。
770: 04/10/13 19:50 ID:??? AAS
>>769
無理。というか無茶。
「ダブルコーテーションの内側」の文字列や $text 全体に、
何か一定の制限や特性があるならなんとかできなくもないかも知れないけど。
771
(1): 04/10/13 20:05 ID:??? AAS
前にスペースある"と後ろにセミコロンがある"を除いたすべての"をエスケープするという方法でもいいのですが。
772: 04/10/13 20:10 ID:??? AAS
>>771
Perl なら
$text =~ s{\x20"(.*?)";}{ (my $str = $1) =~ s/"/\\"/g; qq|\x20"$str";| }eg;
773: 04/10/13 20:14 ID:??? AAS
もしくは
$text =~ s{(?<=\x20")(.*?)(?=";)}{ (my $str = $1) =~ s/"/\\"/g; $str }eg;
774: 04/10/13 20:48 ID:??? AAS
772-773
サンクス。とりあえずそれでできましたが、
$text = '$a = "foo";bar";';
みたいなケースも考えるときついですね。
とりあえず、出直してきます。
775
(1): 04/10/14 02:46 ID:??? AAS
>>758
1.sjis-winをutf8にする
2.utf8はsjisやeucのような途中マッチが起こらない
3.そのためにはソースもutf8で書いた方がよい
4.utf8でezweb文字列の正規表現を書く

うまくできたらソース晒してね
776
(1): 04/10/14 04:01 ID:??? AAS
>>775
4. がうまくできるとは到底思えないのだが。
ていうか単に煽ってるだけか?
777
(1): 04/10/14 07:09 ID:??? AAS
別に普通に出来るだろ
"\xF6\xCF" -> "\xEE\x93\xB6"
778: 776 04/10/14 14:00 ID:??? AAS
>>777
調べてみたら、
 - EZweb の絵文字は Shift_JIS のユーザ定義領域を使っていて、
 - Shift_JIS のユーザ定義領域は Unicode との対応が定義されている
なので、ちゃんと相互変換もできるし問題ないということなのかな。
漏れが無知だったようだ。すまん。
779
(1): 04/10/16 19:49 ID:??? AAS
550から999までというのはどういう風に書けばよろしいでしょうか?
780
(1): 04/10/16 20:02 ID:??? AAS
>>550-999
ってレス番の話じゃないのか?
781
(1): 04/10/16 20:06 ID:??? AAS
>>780
レス番の話ではなく、数字の550から999までだけマッチングさせたいのです。
1-
あと 208 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.022s