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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
895
(2): 877 2019/07/17(水)10:06 ID:u050lnGw(3/3) AAS
>>889
Ruby で、

str = "@time;prop1:style1;prop2:style2"

re = /((^|[@;])[^@;]*)/

p results = str.scan( re )
# [["", ""], [";prop1:style1", ";"], [";prop2:style2", ";"]]

[ 0 ]がマッチした部分、[ 1 ]がキャプチャー部分

>>862
の、["", ";prop1:style1", ";prop2:style2"] と同じ結果

# * を、+ に変えた。
re_2 = /((^|[@;])[^@;]+)/

p results_2 = str.scan( re_2 )
# [["@time", "@"], [";prop1:style1", ";"], [";prop2:style2", ";"]]
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
>例えば「(先頭)あいうえお」という文字列に^(?=.*うえお)でサーチかける場合
>^(?=.*うえお)は「.*うえお」が続く^のみにマッチするから「うえお」を含む「(先頭)」にマッチ
>つまりこれを何度やっても^に戻ってくる
>で、先読みがどこかで失敗したらそこで成立しなくなるというカラクリ
901: 2019/07/17(水)20:40 ID:2/Bgill9(5/5) AAS
>>895
お前は毎回Rubyの話をどのスレにも持ち込んでいる荒らしだろ。
何か言いたいことがあるのなら必ず結論を書け。
何が言いたいのか分からないのでウザイ。だから荒らしなんだよ。

+ に変えて空文字マッチをなくし、結果、希望の文字列を得る、という運用で回避するのはありだ。
ただ、その場合は、プログラマにそう分かるように、
「Rubyの正規表現エンジンは空文字マッチ周りにバグがあるので、注意してください。
空文字マッチがある正規表現を与えた場合、予期せぬ動作になることがあります。」とアナウンスしないといけない。
事実上空文字マッチが使えないが、事実なんだからそうするしかないだろ。
Rubyはこういう事を全くしないからゴミなんだよ。Rubyは滅ぶべくして滅んで行ってるだけ。
JavaScriptは少なくとも仕様に明記はしてる。
ただそれだと弱いからMDNにも書け、というのが俺の主張であり、JavaScriptスレに勝手に依頼しておいた。
以前RegExp.testの件で同様に依頼したら追記されたから、そうなるのを願っている。
そういう、「落とし穴」は共同して塞いでいかないと駄目なんだよ。

完璧な言語なんてない。だから多少バグがあるのは仕方ないとして、
それを未来永劫新規プログラマに押しつけて「キャハハー、お前も落ちたか!」なんてやっているようでは駄目なんだ。
Rubyはプログラマに対してリスペクトが全くない。だから廃れるし、俺もそうなることを願っている。
お前はRubyを吹聴しさえすれば布教出来ると勘違いしているようだが、そんなことはない。
当たり前だが新人にとってはこんなバグにつき合わされること自体大迷惑でしかないんだよ。
今回のでもPCREが一番ましだし、Rubyなんて選ばれる理由がないだろ。
ゴミだと分かっているものを広めるのは、単なる詐欺師でしかないぞ。
お前はお前の行為によってRubyへの反感を得ているだけなことを自覚した方がいい。
あちこちのスレでお前は相当ウザがられてる。

そういうのではなくて、バグを修正するとか、仕様書に明記するとか、
何でそういう建設的な方向に努力出来ないんだ?
こういう地道な積み重ねを全くやってないからRubyの現状はあるわけでさ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.766s*