[過去ログ]
Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net (1002レス)
Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1489511075/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
871: デフォルトの名無しさん [sage] 2019/07/14(日) 13:21:26.40 ID:XILHsvHP >>866 "t" からマッチは誤りでした、申し訳ない.. タグの外側だけ対象に置換する http://www.din.or.jp/~ohzaki/regex.htm#ReplaceOutside この記事の動作のことを言いたかったんですがうろ覚えのまま 適当に書いてしまいました、ごめんなさい http://mevius.5ch.net/test/read.cgi/tech/1489511075/871
873: デフォルトの名無しさん [sage] 2019/07/14(日) 14:15:14.24 ID:LdVrbIxu >>871 ああなるほど、Perlも似たようなゴミ実装になってるな。 > そこで,Perl では空文字列に マッチするような場合には,初回は空文字列がマッチするがそれ以降は マッチせずに必ず 1文字分は進むようにマッチしようとする. これも実装ミスだな。 正しくは、このフラグを「空文字以外のマッチごとにセット」すればいいだけで、修正は1行で済むのだが、こちらも今更なのだろう。 「初回は」というのが間違いで、「空文字にマッチした直後は」が正しい。 ついでにもっと具体的に言っておくと、「初回は」というのが正しければ、 今の実装は検索起動時にフラグをセットして空文字マッチ後にリセットしているはず。 このフラグを「空文字以外のマッチ後」に毎回セットし直すように1行入れる。これで直る。 君がPERL等のOSSか何かにcontributeする気があって修正案を出してくるのなら見てあげるけど。 (俺自身ではそこまでやる気はない) まあしかし、JavaScriptだけがゴミじゃない、ってのは分かった。 というかもしかしてJavaScriptの実装ってPERL実装互換に敢えてしてる? >>872 お前は何派なんだよ? JavaScriptに関してはMDNでも前は「PCREで大体使えます」みたいな事書いてたぞ。 最近大幅リニューアルしてその記述はなくなったが。 (というより色々見にくくなってあまり確認してない) 鬼車派ならこの手の「実装ミス」をひたすら潰しておけばワンチャンあるかもしれんよ。 JavaScriptにしてもPerlにしてもこの辺のミスは確実に足枷になってる。 具体的に言うと遭遇した全プログラマが数時間ずつ無駄に検索その他をさせられる羽目になってる。 これは「新規プログラマ」からすると上達を妨げる障壁でしかない。 JavaScriptで言うと「IEデハー」な件を全部暗記してて今もそれにすがっている奴のウザさみたいなもんだ。 仕様バグがない、というのはそれなりに武器になる。 http://mevius.5ch.net/test/read.cgi/tech/1489511075/873
874: デフォルトの名無しさん [sage] 2019/07/14(日) 15:13:19.95 ID:LdVrbIxu >>867 今更regex101で確認してみたが、PCREだけは(これに関しては)正しく通るじゃねえかよ。 Perlの「初回は」というのはつまり g の時だけおかしくなるということであり、今回は当たらないからだが。 だからJavaScriptも仮にPerl実装互換にしようとしたとしてもしくってるな。 >>871 ちなみに > > と < は後読みと先読みにして外に出すことができるので の意味分かる? おそらくはバックトラックを小さくする為(つまり高速化)だと思うのだが、 実際 regex101で試す限り余計に遅くなる。 テストサンプルはそこの下の「XMLタグを加工する」の上側半分のxmlで、こちらだと (?:^|>)(.*?)(?:$|<) の場合は 29matches, 1277steps だが (?:^|(?<=>))(.*?)(?:$|(?=<)) の場合は 29matches, 1875stepsで、余計に遅くなってる。 格好良くはないが別に $1$2$3 で置換しても問題ないと思うのだが。 http://mevius.5ch.net/test/read.cgi/tech/1489511075/874
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.659s*