[過去ログ]
Regular Expression(正規表現) Part16 (1002レス)
Regular Expression(正規表現) Part16 http://mevius.5ch.net/test/read.cgi/tech/1635936601/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
42: 29 [sage] 2021/11/19(金) 20:58:09.22 ID:rZqXBgxj これの検証してみた Absence operator is broken #150 https://github.com/k-takata/Onigmo/issues/150 ・検証コード (ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x64-mingw32]) p /(?~a.*[bv].*c)/.match("000a111v222c333b444c555") ・結果 #<MatchData "000a111v222c333b444"> a〜v〜c を含んでしまってるのでバグで確定 原因は最初にマッチした段階で検索を打ち切ってしまっていて 別のパターンを見逃している 別のパターンを見つける必要があることは非包含オペレータ提案者さんの論文で 図付きで説明されてるけどこれを見落としてしまったオチ? 直すには論文通りに実装すれば良いだけなので直せないことは無さそう 自分がプログラミング出来れば直したいけどミジンコなので手も足も出ず.. ------------------------------------------------------- >>41 おつー http://mevius.5ch.net/test/read.cgi/tech/1635936601/42
45: デフォルトの名無しさん [sage] 2021/11/20(土) 13:49:08.95 ID:S4adbGs3 >>42 イシュー150の起票者がオリジナルの鬼車作者さんやんけw http://mevius.5ch.net/test/read.cgi/tech/1635936601/45
46: 29 [sage] 2021/11/20(土) 14:09:45.26 ID:dCkHZW0G >>45 そうなんだよね、だから気になってた ------------------------------------------------- >>42 とは別の検証をしてみた p /(?~a.*b.*c|222)/.match("000a111b222c333") #<MatchData "000a111b22"> これは期待通りにマッチした、これが正しく動くということは 論文の読み落としではないね、失礼しました 問題は同一posでマッチ文字数が最短になるマッチを見つけなければいけないが それをしていないことみたいだ この処理って結構な処理量になりそうだけど大丈夫なのかな? オペレータ提案者さんのサンプルコードではどうなってるんだろ? プログラムが読めないから対応出来てるのか分からない.. あまりに重いようなら量指定子を使えるようにしたほうが良いかもしれない .* を .{0,1000} に書き換えて処理量を限定させるのと同じで (?~abc){0,1000} みたいな指定が出来るようにすれば.. http://mevius.5ch.net/test/read.cgi/tech/1635936601/46
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.040s