正規表現道場 Part2 (396レス)
前次1-
抽出解除 レス栞

114
(1): 2014/02/02(日)10:19 ID:??? AAS
>>111
>>112 >>123
/g がループというのはちょっと違う.
リストコンテキストで評価したときはループと言えるが,スカラーコンテキストで評価したときはループではなく,
単に前回マッチした場所を覚えていて続きからマッチングを行うというだけ.

この問題はリストコンテキストで /g を評価したときに,マッチ成功後に途中で止めるいい方法はないかって言う問題だと解釈した.
スカラーコンテキストで評価したときに止めるんなら last を使えば簡単に止まる話.

つまり,while を使っていいんなら,
while (/1|2(*:STOP)|3/g) {
push(@test, $&);
省7
115: ◆QzqhRqBYxktP 2014/02/02(日)14:00 ID:??? AAS
>>114
>ループというのはちょっと違う
そのへんはちゃんと理解してるから大丈夫。foreachとか<>みたいなつもりで書いてるから。

>リストコンテキストで /g を評価したときに,マッチ成功後に途中で止めるいい方法はないか
その通り。

>(*:STOP)
これはフラグ変数を使うやり方とまったく同じだからボツ・・。{ } の中で last するのはナシ。
m/ / の中で止められないか、という話だから。

しかも$REGMARKと$REGERRORは予期しない動きをすることがあるから
普通にフラグを使ったほうが確実。(後述)
省2
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.771s*