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