[解決済み] Rubyで文字列が正規表現にマッチするかどうかをチェックする最も速い方法?
2022-10-02 15:47:01
質問
Rubyで文字列が正規表現にマッチするかどうかを確認する最も速い方法は何ですか?
私の問題は、実行時に与えられた正規表現に一致するものを見つけるために、文字列の巨大なリストを "egrep" しなければならないということです。 私は文字列が正規表現に一致するかどうかだけを気にしており、一致する場所や一致するグループのコンテンツが何であるかは気にしていません。 この仮定を利用して、私のコードが正規表現のマッチングに費やす時間を減らせればと思います。
で正規表現を読み込みます。
pattern = Regexp.new(ptx).freeze
私が見つけたのは
string =~ pattern
よりもわずかに速いことがわかりました。
string.match(pattern)
.
このテストをさらに速くするために使える、他のトリックやショートカットはありますか?
どのように解決するのですか?
Ruby 2.4.0からは
RegExp#match?
:
pattern.match?(string)
Regexp#match?
は、パフォーマンス向上として明示的に
のリリースノートで
のような他のメソッドで行われるオブジェクトの割り当てを避けることができるためです。
Regexp#match
と
=~
:
Regexp#match?
追加Regexp#match?
これは、後方参照オブジェクトを作成し$~
を変更し、オブジェクトの割り当てを減らすことができます。
関連
-
[解決済み] Rubyでランダムな文字列を生成する方法
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] リストに値が存在するかどうかを確認する最速の方法
-
[解決済み] JSで文字列が正規表現にマッチするかどうかをチェックする
-
[解決済み] Rubyで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] 文字列がパターンにマッチするかどうかをチェックする
-
[解決済み] ...』の違い (ダブルドット) と '...' の違い?(トリプルドット)の違いについて教えてください。
-
[解決済み] 最大値のハッシュのキーはどのように見つけるのですか?
-
[解決済み] Ruby: 文字列の最初の文字を取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyの文字列の中から"˶‾‾‾˵"を削除するにはどうしたらいいですか?
-
[解決済み] Hash each ループでインデックスにアクセスすることは可能ですか?
-
[解決済み] Rubyで空のファイルを作成する:"touch "と同等?
-
[解決済み] ハッシュの配列をハッシュの値でソートするにはどうしたらいいですか?
-
[解決済み] 文字列を正規表現に変換する ruby
-
[解決済み] Rubyオプションのパラメータ
-
[解決済み] Rubyで「逆レンジ」を繰り返し処理できないのはなぜですか?
-
[解決済み] Rubyのオフ・ザ・レール
-
[解決済み] 文字列を DateTime に変換する
-
[解決済み] Ruby で改行せずに印刷する方法