[過去ログ] Regular Expression(正規表現) Part13©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
680: 2016/05/10(火)16:04 ID:eU8B0sOX(1/3) AAS
Perl で (pat1|pat2) という書き方をした場合は pat1 にマッチしたら pat2 は試行されない。
perl -e 'print("abcde" =~ /(c.|.de)/ )'
だからマッチさせたい順に書く必要がある。
文字クラスの場合は「そこに書いてあるすべての文字」に含まれるか(あるいは含まれないか)だから順序は関係ない。
処理系の実装の仕方によっては速度に影響するかもしれないが心配するほどの事はないだろう。
Perl じゃないなら違うルールがあるかもしれない。マニュアルに書いてあるかもしれないし明確には書いてないかもしれない。
681: 2016/05/10(火)16:26 ID:eU8B0sOX(2/3) AAS
(pat1|pat2) と書いたときの pat1 と pat2 が排他的にしかマッチしないと判ってるなら
頻出するものほど先に試行されるように書けば速くなる可能性はある。
でもそれが「左から順に」なのかどうか…少なくとも Perl はそうだし大抵そうだとは思うけど……
682: 2016/05/10(火)16:49 ID:eU8B0sOX(3/3) AAS
もしかしてだけど、flex とかを使ってるなら、頻出する順かどうかはあまり関係ないことになる。
これはパターンを DFA にコンパイルしているからで、grep も可能な場合はそうしているらしい。
おそらくあなたはそんなややこしいことを知りたかったわけではないでしょう。本当に申し訳ありません。
でも結局の所、あなたが何を使っているのか判らないので明確には言えないのです。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.041s