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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
578
(3): [age] 04/08/09 18:35 ID:??? AAS
perlの正規表現で
$value = qq|<a href="hogehoge.html">test</a>|;
$value =~ s/<.*?>//g;
print $value;

でHTMLタグを削除できるけど、これの仕組みがわからない。
*→0回以上一致する
?→0回または1回一致する
.→???????

エロイ人解説おながいします
579: 578 04/08/09 18:44 ID:??? AAS
.→改行以外の一文字に一致する

見てた解説サイトにだけちょうどなかったorz

でも*?とする意味はまだわからないでつ;
580
(1): 04/08/09 18:45 ID:??? AAS
>>578
外部リンク[html]:www.kt.rim.or.jp
581
(2): 578 04/08/09 19:05 ID:??? AAS
>可能な限り小さな 繰り返しでマッチを行わせたいのなら、量指定子の後に“?”を続けます。

>>580
どうして?を付けるとそうなるのかが・・・・
例えば
$test = "<aiu>test</aiu>";
$test =~ s/<.*?>//g;
としたときに.*だけですべてをひとつの文字列として捉えそうなのに(現に?がないとそうなりますが)
?を付けるだけで・・・うまくいえないorz

?がコンパイルされる瞬間はいつなんですか?
<.*の時点で可能な限りマッチしますよね・・・っていうかその時は>これはあってもなくても<.*だけで
省5
582
(1): 04/08/09 20:25 ID:??? AAS
>>581
*? で一塊の量指定子。量指定子としての * と量指定子としての ? を
並べて書いてるわけじゃない。

$test = "<aiu>test</aiu>"; として、

最長マッチ (<.*>) の場合:
1. $test の最初の < と パターンの < がマッチ
2. .* は「何か0文字以上を最大限」だから、aiu>test</aiu> にマッチ
3. パターンにはまだ > が残っているが、文字列は全部調べ尽くしたので
  一旦マッチ失敗。
4. .* は「0文字以上」でさえあればいいので、食べちゃった文字を一文字
省14
583
(2): 04/08/09 21:34 ID:??? AAS
ある文字列を含まない行を取得したいのですが、
どのようにしたらいいんでしょうか?
例)
aaabbb ERROR aaabbbccc ABC dddeee
aaabbbcc ABC cdddeee
ERROR aaabbbcccddd ABC eee
というようなテキストがあるとして
errorを含まずABCを含む行だけ(この例では2行目)を
マッチさせたいんですが。
584
(2): 04/08/09 21:44 ID:??? AAS
>>583
外部リンク[htm]:www.din.or.jp
^(?=.*ABC)(?:(?!ERROR).)*$
585
(1): 04/08/09 21:46 ID:??? AAS
>>583
@match_lines = grep((!/error/i and /\bABC\b/), split /\n/, $Strings);
586: 04/08/09 22:00 ID:??? AAS
>>584 >>585さん、ありがとうございます。
しかし、教えてくださったやり方だと、自分の使っている
エディタ(Peggy)ではできないです。
これはPerlで使える方法なのでしょうか?
(Perl知りませんが。。。もしかしたらjavaの
OROとかでも使えるのだろうか?)
ちなみに秀丸エディタでは前方一致とか後方一致で
マッチさせることができるみたいですね。
そこまでいかない普通の?正規表現しか使えない環境でこれは
実現できないものでしょうか??
587
(1): 04/08/09 22:05 ID:??? AAS
EmEditorならできるよ
588: 04/08/09 22:22 ID:??? AAS
>>587さん、ありがとうございます。
ちょっと見てみます。
でもすでにPeggyをシェアウェアとして長く使っており、
見やすい配色になれてしまったので、
今から乗り換えるつもりはないですが。。。
必要なときだけ使う形でいくしかないかな。
あ、でもこれ使用期限とかあるのかな。
589: 04/08/09 22:30 ID:??? AAS
フリーのVxEdtorの正規表現検索でも >>584 でできたよ。
590: 581 04/08/10 07:09 ID:??? AAS
>>582
うお!?
メチャクチャわかりやすい!
保存しておきまつ!
591
(1): 04/08/10 13:43 ID:2tv/OiLj(1) AAS
>>252
便乗させてください。

if ($FORM{'name'} !~ /^(\x82[\x9f-\xf1]|\x83[\x40-\x96]|[\x88-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc])*$/){ &error; }

ここから漢字とひらがなも省いて「全角カタカナのみを許可」という形にするにはどうればよいでしょうか。
592
(1): 04/08/10 20:24 ID:??? AAS
>>591
外部リンク[htm]:www.din.or.jp
593: 04/08/11 20:21 ID:??? AAS
>>592
ありがとうございました
594
(6): 04/08/12 12:26 ID:wFKNBEiY(1) AAS
電話番号をsjisで正規表現するにはどうすればいいでしょうか?
080-1234-5678
とか
03-1234-4321
とか
080-1234-5678
とか
08012345678
とか
0312344321
595
(1): 04/08/12 13:04 ID:??? AAS
[0-9-]*
596: 04/08/12 14:16 ID:??? AAS
>>594
080-1234-5678?
08-01234-5678?
08012345678?
597
(3): 04/08/12 14:23 ID:??? AAS
どういう文字列を電話番号とみなすのか、話はそれからだ
1-
あと 392 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s