[過去ログ] Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
871(2): 2019/07/14(日)13:21 ID:XILHsvHP(2/3) AAS
>>866
"t" からマッチは誤りでした、申し訳ない..
タグの外側だけ対象に置換する
外部リンク[htm]:www.din.or.jp
この記事の動作のことを言いたかったんですがうろ覚えのまま
適当に書いてしまいました、ごめんなさい
873(1): 2019/07/14(日)14:15 ID:LdVrbIxu(4/6) AAS
>>871
ああなるほど、Perlも似たようなゴミ実装になってるな。
> そこで,Perl では空文字列に マッチするような場合には,初回は空文字列がマッチするがそれ以降は マッチせずに必ず 1文字分は進むようにマッチしようとする.
これも実装ミスだな。
正しくは、このフラグを「空文字以外のマッチごとにセット」すればいいだけで、修正は1行で済むのだが、こちらも今更なのだろう。
「初回は」というのが間違いで、「空文字にマッチした直後は」が正しい。
ついでにもっと具体的に言っておくと、「初回は」というのが正しければ、
今の実装は検索起動時にフラグをセットして空文字マッチ後にリセットしているはず。
このフラグを「空文字以外のマッチ後」に毎回セットし直すように1行入れる。これで直る。
君がPERL等のOSSか何かにcontributeする気があって修正案を出してくるのなら見てあげるけど。
省14
874(1): 2019/07/14(日)15:13 ID:LdVrbIxu(5/6) AAS
>>867
今更regex101で確認してみたが、PCREだけは(これに関しては)正しく通るじゃねえかよ。
Perlの「初回は」というのはつまり g の時だけおかしくなるということであり、今回は当たらないからだが。
だからJavaScriptも仮にPerl実装互換にしようとしたとしてもしくってるな。
>>871
ちなみに
> > と < は後読みと先読みにして外に出すことができるので
の意味分かる?
おそらくはバックトラックを小さくする為(つまり高速化)だと思うのだが、
実際 regex101で試す限り余計に遅くなる。
省4
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s