[過去ログ] Regular Expression(正規表現) Part16 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
751
(1): 2023/06/23(金)23:16 ID:zWmLGOhD(5/5) AAS
そういうこと俺もあるから分かるわーw
頭が回ってないときに動作確認するとしっかり確認出来てないのに確認したつもりに
なってしまうんだよなぁ、だから休憩と二重三重の確認はめちゃ大事

間違えた原因は分からないけどとりあえずゆっくり休んでくれw
752: 2023/06/24(土)00:27 ID:X4q59utv(1/4) AAS
勘違いした理由が分かった
^([[:punct:]]|>)+
これをやると&で切れちゃうんだ
s/([[:punct:]]|>)+//g
をやるとgtが置換されずに残る

末尾に$とか目標物を付ければ切れないんだが
さてどうして切れるのか誰か教えて
753: 2023/06/24(土)00:36 ID:X4q59utv(2/4) AAS
やっぱ左側が優先なのか
(>|[[:punct:]])
と入れ替えたら切れない
754: 2023/06/24(土)09:56 ID:o3ZfF1Sp(1) AAS
>>742 >>741
それだと行頭からxxxだけしかない行の改行が削除できずに残りそうだけどどうだろう
^AAA|^.*\r\n|xxx$ → 削除
755
(1): 751 2023/06/24(土)11:05 ID:QPqcCtG1(1/3) AAS
>やっぱ左側が優先なのか
正解

ただ、同じ正規表現で&;gt;にマッチする環境もあるよ
考えられる中で最長になるマッチを探すエンジン

バックトラックの動きがまだよく分かってないなら>>708のNTTと早大の正規表現や
>>743で使ってる .* と .*? の動きも見直しておいたほうがいいかも
見た目は簡単そうに見えるけど正しくバックトラックの動きを理解してないと作れない
舐めてかかると酷い目に遭う怖いヤツだよ(過去に経験あり)
756: 2023/06/24(土)11:10 ID:QPqcCtG1(2/3) AAS
あ、NTTと早大のやつは正規表現を^と$で囲ってから動かして
757: 2023/06/24(土)11:21 ID:X4q59utv(3/4) AAS
>>755
いままで
+や++での強欲のバックトラックが最長を探すのに違いがあるとは思っていなかったよ
最大の最長を探す記述ってのも欲しいな
758: 2023/06/24(土)16:54 ID:QPqcCtG1(3/3) AAS
>最大の最長を探す記述

ちょっと探してみたらPHPのオプションにあった
www.php.net/manual/ja/function.mb-regex-set-options.php
> l 最も長くマッチするものを探す

この処理ってすごく重くなりそうなイメージがあったけどそうでもないのかな
759: 2023/06/24(土)17:35 ID:X4q59utv(4/4) AAS
PHPだけじゃなあ
結局、事故らない為には長さの違うダブリは取り除いておくほうが無難ってことか
760: 743 2023/06/25(日)11:57 ID:YeZqv3UB(1) AAS
>> 759
考えてみると長いほうを前にしても短いほうがマッチ出来なくて詰むケースがあるのか
正規表現むずかしい

>> 740 741 754
改行コードがLFやCRのみの場合に対応してない
最後の行がAAAで始まらない場合、行末の改行が無い場合に削除されない
743は両方に対応しているけど740の発想のほうがシンプルで優れてるね
あとサクラエディタでは\Rが使えるので使ったほうが簡単に書けそう
761
(1): 2023/06/27(火)21:16 ID:TnfGmDZI(1) AAS
最長一致マッチが有効のとき、下の正規表現は何にマッチすべき?

"abcd" =~ /abc\Kd|abc/;

\Kの前を文字列長に含めるべきか否かを考えて下さい
762
(1): 2023/06/28(水)12:49 ID:vk3PbjZ1(1) AAS
元より最左ルールに基づいてdよりabcにマッチすべきとはならんやろ
763: 761 2023/06/28(水)13:05 ID:m0cBggZC(1) AAS
>>762
ありがとうございます、それは正しい意見だと思います
\Kの前を文字列長に含めるべきかどうかについてはどうお考えですか?
今後の参考にしたいと考えております
764: 2023/06/29(木)11:57 ID:0JMnG4u5(1) AAS
最長一致する正規表現が有効の場合

1、「abc」「あ」

2、「て゛」「で」

A. 前が長い
B. 同じ長さ
C. 後ろが長い
765: 2023/07/02(日)20:25 ID:/BVUs+ug(1) AAS
奥が深すぎる
766: 2023/07/06(木)13:17 ID:GbtWdAMV(1/3) AAS
twitter.com/k_takata/status/1676247372731662336
>正規表現技術入門が第2刷増刷

おめでとうございます
bregonig.dllやonigmoにはいつもお世話になってます
vimは知りませんw
767: 2023/07/06(木)17:43 ID:SQbV6Whm(1) AAS
JaneStyleであぼーんにつかいたいのですが、

アウアウウー Sa47-runv [106.131.26.222]

47
runv
131.26.222

この3つが変わる場合の正規表現ってどうかいたらよいでしょうか?
768
(2): 2023/07/06(木)20:37 ID:GbtWdAMV(2/3) AAS
Jane Styleの仕様が分からないけどこれでいける?

(?i)アウアウウー\s*Sa[a-z\d]{2}-[a-z\d]{4}\s*\[106\.\d{1,3}\.\d{1,3}\.\d{1,3}\]
769: 2023/07/06(木)21:30 ID:7Yxy824T(1/3) AAS
>>768
ありがとうございます!
ためしてみたけれど駄目でした。
細かく分析して応用してみます!!
770: 2023/07/06(木)21:54 ID:7Yxy824T(2/3) AAS
>>768
失礼しました。勘違いをしていて、正しく設定したらこれでいけました!!
大感謝です!&正規表現の勉強になりました!!
リファレンスみてなるほどとうなっています
771: 2023/07/06(木)21:55 ID:gWNyo9yQ(1/2) AAS
いやそれでいけるでしょ
(?i)はデフォなので要らないけど
ダメなら設定の仕方が悪いか、既に表示されているものにNGを設定したんで
設定前の表示が表示されたままで再描画をやってないのでNGが表示に反映されてないかのどっちか
772: 2023/07/06(木)22:11 ID:GbtWdAMV(3/3) AAS
動いて良かった、正規表現の勉強頑張れーw
771さんもありがとう
773
(1): 2023/07/06(木)22:11 ID:4RAXuAwI(1) AAS
ちなみにワッチョイの下4桁、runvの部分は大文字もありうるから
その正規表現すり抜けするかも
774: 2023/07/06(木)22:16 ID:gWNyo9yQ(2/2) AAS
(?i)が付いてるし、なくてもそれがデフォだから大丈夫だよ
775: 2023/07/06(木)22:21 ID:7Yxy824T(3/3) AAS
>>773
(?i)アウアウウー\s*Sa[0-9A-Za-z\d]{2}-[0-9A-Za-z\d]{4}\s*\[106\.\d{1,3}\.\d{1,3}\.\d{1,3}\]

一応、ご指摘通り改良しておきました!
776: 2023/07/07(金)00:41 ID:adSx9MnJ(1) AAS
反対に(?i)ではSaの他にsAにもマッチしてしまうのでは?
(?-i)アウアウウー Sa..-.... \[106\.
これで誤爆する実例があるなら教えてほしい
777: 2023/07/07(金)13:06 ID:xew4KSRK(1) AAS
言い方があれだけど、丁寧に書いたかどうかの差なのでどっちでも機能すると思う
778
(1): 2023/07/07(金)23:28 ID:chPidFQv(1) AAS
鬼車で(?L)と\g<0>が共存出来ないようだけど

"\g<0>が正規表現全体を取り込むときに(?L)だけを取り込まないようにする"

という修正案で何か問題が起こるか分かる人いません?

例えば (?Lix)abc\g<0> だったら\g<0>の中身が (?ix)abc\g<0> になるようにすれば
共存可能になるんだけど副作用が出るのか分からない

鬼車公式) 全体オプション
github.com/kkos/oniguruma/blob/41a3b802af2155eef6d648aa3608e39605110642/doc/RE.ja#L288
省1
779: 2023/07/09(日)12:38 ID:dnLGUnq0(1/2) AAS
>>778
"\g<0>" に取り込むときにはそのまま全て取り入れ、取り出すときに
"L" や "C" や "I" を取り除く方法もあるのでは?
780: 2023/07/09(日)15:02 ID:NT/2XwNR(1) AAS
最長マッチ(?L)を知らなかったんだけど何か思ってたのと全然違った
DFA的な最長だと思ってたのに
1-
あと 222 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s