[過去ログ] Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
893
(1): 892 2019/07/17(水)09:51 ID:u050lnGw(2/3) AAS
(^|[@;])[^@;]*

OR を使うと、両方に該当する場合に、どちらの処理がされるのか、あいまい!
つまり、先頭文字が@; の場合に、両方に該当するので、処理があいまい!

A|B
A, B 両方に該当する場合に、A,B どちらの処理がされるのか、あいまい!
348
(1): 338 2017/10/21(土)17:14 ID:o7hEIA7f(2/3) AAS
>>347
すごい!>>346のvar文字列に対しpos=4で最も理想的な形でとれました!
pos := RegExMatch(var, "s)(?=((お?+盆)|(クリスマス)|(正月)))(?=.*(?2))(?=.*(?3))(?=.*(?4)).*(?1)", $)
MsgBox,,, pos%pos% %$%, ;pos=4 $=最初のクリスマスから最後の盆

s)^(?=.*?お?盆)(?=.*?クリスマス)(?=.*?正月)
この正規表現の出所はスマホアプリ板2chmate質問スレのテンプレにあるNGワードで
2chmateのシングルラインモードは(?s:ここに正規表現)と書くようです
その辺のやりとりが過去スレ
2chスレ:applism
にありました

>893
>複数のワードを全て含む書き込みをNG
>(?s:^(?=.*ワード1)(?=.*ワード2)(?=.*ワード3))
>これがどうしても分からん(なぜワードの順番を入れ換えてもマッチするのか)
>
>895
>ワード1を先読みしてそれを含む^にマッチ
>ワード2を先読みしてそれを含む^(?=.*ワード1)にマッチ
>ワード3を先読みしてそれを含む^(?=.*ワード1)(?=.*ワード2)にマッチ
>
>896
>例えば「(先頭)あいうえお」という文字列に^(?=.*うえお)でサーチかける場合
>^(?=.*うえお)は「.*うえお」が続く^のみにマッチするから「うえお」を含む「(先頭)」にマッチ
>つまりこれを何度やっても^に戻ってくる
>で、先読みがどこかで失敗したらそこで成立しなくなるというカラクリ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.045s