[過去ログ]
Regular Expression(正規表現) Part16 (1002レス)
Regular Expression(正規表現) Part16 http://mevius.5ch.net/test/read.cgi/tech/1635936601/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
55: 29 [sage] 2021/12/06(月) 21:53:22.08 ID:S5ugmQVz rubyのコードが読めたから調子に乗って鬼車のソースからのインストールと simple.c の実行に挑戦してみたら成功するまで10日くらいかかった win10 パソコンで VMware を動かして中に ubuntu 20.04 を入れて oniguruma 6.9.7 をインストした あとは C言語で書かれたサンプルコードを解析すれば oniguruma の 色々なオプションを試せるようになる.. Unix も C言語 も知らないしプログラマでもないミジンコだけどググりまくれば 意外と何とかなりそうだ、次は Onigmo を入れよう.. http://mevius.5ch.net/test/read.cgi/tech/1635936601/55
56: 29 [sage] 2021/12/07(火) 02:27:56.29 ID:gbEOg3vj Onigmo もインスト出来たけど simple.c の実行結果がおかしい // oniguruma の場合 match at 4 0: (4-14) 1: (5-13) // Onigmo の場合 match at 4 0: (21474836484-55834574862) 1: (0-0) インスト失敗か? README_japanese に書いてある "onig-config --cflags" での構成確認は oniguruma と Onigmo で同じコマンドだけど共通のコマンドなのかな? 両方入れたからどっちの構成を確認してるのか分からない http://mevius.5ch.net/test/read.cgi/tech/1635936601/56
57: 29 [sage] 2021/12/07(火) 04:28:00.86 ID:gbEOg3vj ↑の構成確認の件はOnigmo の README.ja の 111 〜 114 行目 が oniguruma の説明のままなだけだった、takata先生更新を.. .ja が付いてない英語版も同様です github の Onigmo のトップページでは正しく "onigmo-config --cflags" と書いてありました http://mevius.5ch.net/test/read.cgi/tech/1635936601/57
58: 29 [sage] 2021/12/07(火) 15:13:24.06 ID:gbEOg3vj ↑ の件ですが README.ja の 61 行目の > 以下、鬼車の README.ja: を見落としておりました、鬼車の説明書きのコピペだったのね..orz >>56 の Onigmo の結果がおかしかったのも↓で正常動作しました 間違い: cc sample.c -L/usr/local/lib -lonig 正しい: cc sample.c -L/usr/local/lib -lonigmo お騒がせして申し訳ありません m(__)m http://mevius.5ch.net/test/read.cgi/tech/1635936601/58
59: 29 [sage] 2021/12/14(火) 23:52:24.48 ID:hRBVXs3o perl5と鬼車、鬼雲の動作を比べて遊んでたらperl5の変な挙動を発見 \d{1} の {1} を付けるか消すかで結果が変わる --------------------------- my $str = '12'; $str =~ s/(?<name>\d{1}){0}(?&name)/<match=$&>/; print "$str\r\n"; --------------------------- ↓{0} での定義を (?(DEFINE) ... ) に変えると正常動作する --------------------------- my $str = '12'; $str =~ s/(?(DEFINE)(?<name>\d{1}))(?&name)/<match=$&>/; print "$str\r\n"; --------------------------- perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x64-multi-thread http://mevius.5ch.net/test/read.cgi/tech/1635936601/59
60: 29 [sage] 2021/12/15(水) 05:01:54.34 ID:+lf8SrwJ ・ {0} での定義ではマッチせず --------------------------- my $str = '123'; $str =~ s/(?<name>123){0}(?&name)/<match=$&>/; print "$str\r\n"; ・DEFINEを使うと正常動作する --------------------------- my $str = '123'; $str =~ s/(?(DEFINE)(?<name>123))(?&name)/<match=$&>/; print "$str\r\n"; --------------------------- perl5 では {0} で定義するのは想定外? http://mevius.5ch.net/test/read.cgi/tech/1635936601/60
61: 29 [sage] 2021/12/16(木) 22:14:43.92 ID:0VSoy2O4 onigurumaの非包含オペレータの動作が論文と違う 正規表現 ^(?~abc) をテキスト 0123abcd に対して検索して比較すると.. 論文の動作 : 0123ab がマッチする onigurumaの動作 : 0123 がマッチする 逆に Onigmo は分岐が含まれない正規表現なら論文通りに動作するので この場合は論文と同じ動作をする 動作的には ((?!abc).)* と同じなので論文で指摘されているように 形式言語理論から逸脱しているし、後ろに続く正規表現によっては マッチ出来ずに検索が終わってしまうケースが発生する 例、 ^(?~abc)c 非包含オペレータは提案から14年経ってもなお未完のままということに.. http://mevius.5ch.net/test/read.cgi/tech/1635936601/61
62: デフォルトの名無しさん [sage] 2021/12/17(金) 13:32:58.43 ID:N/8v4GiQ >>61 ^(?~(?<=ab)c) http://mevius.5ch.net/test/read.cgi/tech/1635936601/62
63: デフォルトの名無しさん [sage] 2021/12/17(金) 15:12:28.90 ID:wvP9ttxM 記号が同じなだけで名称も説明上の動作も違うからそもそも似て非なる別物 ではなくて? http://mevius.5ch.net/test/read.cgi/tech/1635936601/63
64: 29 [sage] 2021/12/17(金) 19:59:50.60 ID:t+q3CK3B >>62 それ反則w ちなみにこんなのもある Perl正規表現雑技 : ある文字列を含まないものにマッチする正規表現 http://www.din.or.jp/~ohzaki/regex.htm#Without >>63 その解釈で間違ってないと思う、oniguruma の (?~abc) は仕様が 決まった時点で別物だね、(?:(?!abc).)* の拡張版と言ったほうがしっくりくる 実用上は oniguruma 版のほうが使いやすそうだしあえて変えたんだろうね http://mevius.5ch.net/test/read.cgi/tech/1635936601/64
65: デフォルトの名無しさん [sage] 2021/12/17(金) 20:49:06.88 ID:BDVQn7Pa いやぁ、、ヒネくれちゃっただけでしょ http://mevius.5ch.net/test/read.cgi/tech/1635936601/65
66: デフォルトの名無しさん [sage] 2021/12/19(日) 06:09:19.30 ID:X6k+U6Sv 成果だけ横から頂いてこっちで改変流用するわwおまえ除名なwとか言われちゃったらまあ拗ねもするさ http://mevius.5ch.net/test/read.cgi/tech/1635936601/66
67: デフォルトの名無しさん [sage] 2021/12/19(日) 08:57:20.74 ID:hMGijQ8S (?s:^(?=.*(?:トビラ|280|280|[内外]製|純正|公式))(?=.*(?:ガイジ|発狂|長文|必死|キチガイ|キチキチ))) これが効かないんすけど何か間違えてますか? https://egg.5ch.net/test/read.cgi/android/1638738146/ http://mevius.5ch.net/test/read.cgi/tech/1635936601/67
68: デフォルトの名無しさん [sage] 2021/12/19(日) 10:54:25.85 ID:mCvaVjB9 少なくともchmateだとマッチしてる 正規表現と文字列の切り替えの設定間違えてるんじゃないの http://mevius.5ch.net/test/read.cgi/tech/1635936601/68
69: デフォルトの名無しさん [sage] 2021/12/20(月) 20:18:42.66 ID:k8SAGnLj ●Regular Expressionの使用環境 サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0) ●検索か置換か? 検索 ●説明 IPv4アドレスに一致させたい ●対象データ 2021.12.19.06 192.168.1.1 ●希望する結果 192.168.1.1 下の正規表現だと2021.12.19.06の021.12.19.06に一致していまいました。 /(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/k http://mevius.5ch.net/test/read.cgi/tech/1635936601/69
70: 69 [sage] 2021/12/20(月) 20:22:55.66 ID:k8SAGnLj すみません 対象データの訂正です 最初と最後に文字列があります ●対象データ AB2021.12.19.06E CD192.168.1.1E http://mevius.5ch.net/test/read.cgi/tech/1635936601/70
71: デフォルトの名無しさん [sage] 2021/12/20(月) 20:25:28.02 ID:cLNhpahP https://www.google.co.jp/search?q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE+IPv4 http://mevius.5ch.net/test/read.cgi/tech/1635936601/71
72: デフォルトの名無しさん [sage] 2021/12/20(月) 20:55:56.04 ID:k8SAGnLj 度々すみません 訂正があったので再度質問させてください ●Regular Expressionの使用環境 サクラエディタ(bregoing.dll Ver4.20 with Onigmo 6.2.0) ●検索か置換か? 検索 ●説明 IPv4アドレスに一致させたい 条件 前後に何も含まない場合 前後に[]を含む場合 前後に半角を含む場合 ●対象データ A2021.12.19.06B B192.168.1.01B 192.168.1.1 [192.168.1.1] _192.168.1.1_ ←_は半角空白 ●希望する結果 192.168.1.1 [192.168.1.1] _192.168.1.1_ ←_は半角空白 下の正規表現だと2021.12.19.06の021.12.19.06に一致していまいました。 /(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/k よろしくお願いします http://mevius.5ch.net/test/read.cgi/tech/1635936601/72
73: 72 [sage] 2021/12/20(月) 21:00:55.82 ID:k8SAGnLj 希望する結果では[]や半角を含まずIP部分だけ一致させたいです よろしくお願いします http://mevius.5ch.net/test/read.cgi/tech/1635936601/73
74: デフォルトの名無しさん [sage] 2021/12/20(月) 21:13:35.36 ID:cLNhpahP (?<![.0-9])(IPv4の正規表現ggrks)(?![.0-9]) http://mevius.5ch.net/test/read.cgi/tech/1635936601/74
75: 72 [sage] 2021/12/20(月) 21:27:00.64 ID:k8SAGnLj >>74 ありがとうございます それだとIPv4アドレスではない部分に一致してしまいダメ (?<![.0-9])([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(?![.0-9]) http://mevius.5ch.net/test/read.cgi/tech/1635936601/75
76: 72 [sage] 2021/12/20(月) 21:31:02.39 ID:k8SAGnLj >>74 こういった結果を希望しています よろしくお願いします ●対象データ A2021.12.19.06B B192.168.1.01B 192.168.1.1 [192.168.1.1] _192.168.1.1_ ←_は半角空白 ●希望する結果 一致しない 一致しない ←.01という表記が正しくない為 192.168.1.1 ←一致 192.168.1.1 ←[]の中を一致 192.168.1.1 ←前後の半角を除いて一致 http://mevius.5ch.net/test/read.cgi/tech/1635936601/76
77: デフォルトの名無しさん [sage] 2021/12/20(月) 21:50:00.81 ID:k8/KZn4u [192.168.1.1_ http://mevius.5ch.net/test/read.cgi/tech/1635936601/77
78: 72 [sage] 2021/12/20(月) 22:36:54.07 ID:azxFC8Fx >>74 下の通りにしたら出来ました ありがとうございました /(?<![.0-9])(((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]))(?![.0-9])/k http://mevius.5ch.net/test/read.cgi/tech/1635936601/78
79: デフォルトの名無しさん [sage] 2021/12/21(火) 05:04:20.96 ID:DlXpRfUq (?<![.\d])(?:(2(?:5[0-5]|[0-4]\d)|1\d\d|[1-9]?\d)\.){3}\g'1'(?![.\d]) http://mevius.5ch.net/test/read.cgi/tech/1635936601/79
80: 72 [sage] 2021/12/21(火) 12:15:02.94 ID:bLPLuUHJ >>79 できました ありがとうございました! http://mevius.5ch.net/test/read.cgi/tech/1635936601/80
81: デフォルトの名無しさん [sage] 2021/12/21(火) 12:48:39.34 ID:YqPiCVQe (?<![.\d])(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.\g'1'){3}(?![.\d]) http://mevius.5ch.net/test/read.cgi/tech/1635936601/81
82: 72 [sage] 2021/12/21(火) 12:54:34.52 ID:bLPLuUHJ >>81 できました ありがとうございます! みなさん頭いいんですね・・・私は単純な正規表現しか分からず http://mevius.5ch.net/test/read.cgi/tech/1635936601/82
83: 72 [sage] 2021/12/21(火) 13:04:04.34 ID:bLPLuUHJ ちなみに>>79さんや>>81さんの正規表現だと こういった正規表現チェッカーでは一致しないのは何故なんでしょうか? https://www.debuggex.com/ JavaScriptと表示されているリストをPythonに指定して試しました http://mevius.5ch.net/test/read.cgi/tech/1635936601/83
84: デフォルトの名無しさん [sage] 2021/12/21(火) 16:35:44.32 ID:fKMzp4yd 後方参照の記法絡みかなあ http://mevius.5ch.net/test/read.cgi/tech/1635936601/84
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 918 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s