Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (7)

タグの絞り込みを解除

正規表現に関するpetite_blueのブックマーク (10)

  • Regular Expression Matching Can Be Simple And Fast

    Regular Expression Matching Can BeSimple And Fast (but is slow inJava,Perl,PHP,Python,Ruby, ...) Russ Cox rsc@swtch.com January 2007 Introduction This is a tale of two approaches to regular expression matching. One of them is in widespread use in the standard interpreters for many languages, includingPerl. The other is used only in a few places, notably most implementations of awk and grep.

    • オートマトンは正規表現の夢を見るか(見るし、夢というかそのものですらある)

      何についての記事なの? ある種の正規表現エンジンの実装には、オートマトンと呼ばれる計算(機)モデルが応用されています この記事は、オートマトンという計算(機)モデルが正規表現とどう関わっているのかを、実際にオートマトンを紙とペンで操作しながら理解しようという目的で書かれています 結果的に正規表現エンジンの実装にはほとんど踏み込めておらず、計算理論の話に終始しています。それでも面白いと思ってくださる方は、ぜひ読み進めていただけると幸いです 面白そうだなと思って頂けていない方も、ぜひ読んでみて下さい。そして計算科学の面白さがなんとなく伝われば嬉しいです

      オートマトンは正規表現の夢を見るか(見るし、夢というかそのものですらある)
      • シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita

        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

        シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita
        • 正規表現の先読み・後読み

          正規表現の「先読み(lookahead)」「後読み(lookbehind)」について紹介します。 正規表現の「位置へのマッチ」 正規表現は、文字列のパターンマッチに使われます。たとえば [0-9]{4} は数字 4 つが並ぶ文字列にマッチする表現です。 多くの正規表現は「文字列」にマッチしますが、「文字列」ではなく「位置」にマッチする表現があります。これは、アンカーと呼ばれます。また、長さ 0 の文字列にマッチすると考えて、ゼロ幅アサーションとも呼ばれます。 アンカーの例として、^(先頭)$(末尾)\b(単語の境界)などがあります。 この例では、cat にはマッチします。一方、category や concat は cat を含みますが前後が単語の境界になっていないためマッチしません。 先読み 先読み(lookahead)は、位置にマッチする記法の一種です。位置の指定に正規表現を使います。

          正規表現の先読み・後読み
          • The unreasonable effectiveness of f‍-‍strings and re.VERBOSE

            ... in which we look at one or two ways to make life easier when working withPython regular expressions. tl;dr: You can compose verbose regular expressions using f‍-‍strings. Here's a real-world example – instead of this: 1pattern = r"((?:\(\s*)?[A-Z]*H\d+[a-z]*(?:\s*\+\s*[A-Z]*H\d+[a-z]*)*(?:\s*[\):+])?)(.*?)(?=(?:\(\s*)?[A-Z]*H\d+[a-z]*(?:\s*\+\s*[A-Z]*H\d+[a-z]*)*(?:\s*[\):+])?(?![^\w\s])|$)"

            • 正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ

              先日、このようなツイートを書いたところ、かなりの反響がありました。JavaScript の正規表現の脆弱性の例でいうと、例えば /\s+$/ は脆弱性があると言える console.time(); /\s+$/.test(" ".repeat(65536) + "a"); console.timeEnd(); 結構時間がかかるのがわかる。でも /\s+$/ を見て「これは危険だな」と理解出来る人はそんなにいない。JavaScript に限らないけれど。 — Takuo Kihira (@tkihira) February 17,2022 これは一般に ReDoS (Regular expression Denial of Service) と呼ばれる脆弱性です。正確に理解するのが難しい脆弱性なので、少し解説してみたいと思います。 結論 長い記事になるので、最初に「とりあえずこれだけ知っ

              • 正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話

                正規表現の"正規"って何 ある時ふと思いました。 「正規表現の"正規"って何だろう?」 「何を根拠に"正規"を名乗っているのか?」 と。 「誰かが『これが正規の表現だ』と言ったはず」で、 「それは周りにどうやって"正規"だと認められたのだろう」 ということが気になったので調べてみました。 "正規表現"という名前でなくて、"ジャックさんの表現"とか"記号ごちゃごちゃ表現"だったらこんな疑問も持たなかったのですけど。数学における"正規"とは 一般に"正規"というと、"正規品"や"正規の手順"といったように"物の(genuine)"や"公式な(official)"といった意味がありますが、数学の"正規"はちょっと違います。数学で"正規"(および"正則"、英語では"regular"または"non-singular")は、ある概念に強い制限をかけたもの、という意味です。強い制限をかけたものは取

                正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話
                • Blog|その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法

                  ReDoS とは、Regular expression Denial of Service の略称で脆弱な正規表現を利用することで起こる DoS のひとつです。 正規表現は利用者からの入力値の検証など色々な場面で利用されていますが、正規表現の記述は難しく、誤った記述をしてしまうと ReDoS の影響を受ける恐れがあります。記事では ReDoS の概要から対策方法まで解説していきます。 ReDoS とは メールアドレスや電話番号の入力が正しい形式になっているかどうかを確認するために正規表現を使うことがあると思います。 複雑な形式をマッチさせる正規表現を正しく書くことは難しく、書き方によっては処理に時間がかかることがあります。 ReDoS は、正規表現が使われている部分において、正規表現エンジンに対して処理時間が多くかかる入力を与えることでサービス停止が起こる脆弱性です。 Freezing

                  Blog|その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法
                  • 正規表現:悪い表現、いい表現、最良の表現 | POSTD

                    わずかな文字がいかにしてパフォーマンスに大きな違いを生めるかというお話 正規表現は、私たち開発者がことあるごとに駆使する呪文のようなものですが、私たちはそれをどんな時も巧みに使いこなしていると言えるでしょうか。正規表現は繊細で精密な言語です。入念な慎重さで記述してやれば、ボウリングで一瞬にして完璧なストライクを取るような強力なテキストとなり得ます。 しかし、正規表現が精密さに欠ける状態で投げ出されると、さながら酔っ払いがよろよろとつまずきながらテキストの上を歩くがごとく、そのボールはぎこちなくボウリングのレーンを転がり、ピンを1つか2つ倒すだけで終わってしまうのです。 これら2つの正規表現の違いは何なのか。何がいい表現と悪い表現を分けるのか。正規表現に素晴らしい力を与えるメカニズムを、この投稿で明かしてみようと思います。効果的な表現とそうでない表現との大きな違いをきっと分かってもらえるはず

                    正規表現:悪い表現、いい表現、最良の表現 | POSTD
                    • 正規表現でのメールアドレスチェックは見直すべき – ReDoS

                      Last Updated on: 2018年8月13日前のエントリでStackExchangeがReDoSで攻撃されサイトがダウンした問題を紹介しました。少しだけ掘り下げて見たところ、正規表現だけでメールアドレスをチェックしている場合、壊滅的なReDoS(十分短い文字列で指数関数的に実行時間が増加する)が可能なことが判りました。 結論を書くと、正規表現でのメールアドレスチェックは見直すべき、です。(特にRubyユーザー) 追記:影響範囲はメールアドレスチェックに限らないので、正規表現チェックは全体的に見直さないと、どこが脆弱なのか判りません。見直してチェックしたとしても、それが完全であったと保証することは困難です。ネット検索して直ぐに見つかった検索パターンは非常に脆弱であったこと、メールアドレスのマッチパターンは脆弱になりやすい繰り返しの繰り返しが含まれること、これらがあったのでタイトルが

                      正規表現でのメールアドレスチェックは見直すべき – ReDoS
                      • 残りのブックマークを読み込んでいます1

                      お知らせ

                      公式Twitter

                      • @HatenaBookmark

                        リリース、障害情報などのサービスのお知らせ

                      • @hatebu

                        最新の人気エントリーの配信

                      処理を実行中です

                      キーボードショートカット一覧

                      j次のブックマーク

                      k前のブックマーク

                      lあとで読む

                      eコメント一覧を開く

                      oページを開く

                      はてなブックマーク

                      公式Twitter

                      はてなのサービス

                      • App Storeからダウンロード
                      • Google Playで手に入れよう
                      Copyright © 2005-2025Hatena. All Rights Reserved.
                      設定を変更しましたx

                      [8]ページ先頭

                      ©2009-2025 Movatter.jp