並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 207件

新着順 人気順

正規表現の検索結果41 - 80 件 / 207件

  • その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法 | yamory Blog

    ReDoS は、脆弱な正規表現を利用することで起こる DoS のひとつです。正規表現の記述は難しく、誤った記述をしてしまうと ReDoS の影響を受ける恐れがあります。本記事では ReDoS の概要から対策方法まで解説していきます。

      その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法 | yamory Blog
    • RubyKaigi 2023での発表の「2進数の足し算を計算する正規表現」の解説

      RubyKaigi 2023で「Make Regexp#match much faster」という発表をします、@makenowjust です。この発表では、ReDoS対策のためにRuby 3.2で導入された、正規表現マッチング (Regexp#match) の メモ化による最適化 について解説します。 さて、発表の中に次のようなスライドがあります。 このスライドはRubyの正規表現がいかに強力かを説明するためのもので、例として「2進数の足し算を計算する正規表現」を示しています。 また、このツイートで使っている正規表現も、実はこの正規表現です。 今回の記事では、この「2進数の足し算を計算する正規表現」の解説をしていきたいと思います。 「2進数の足し算を計算する正規表現」 コピペがしやすいように、スライドの画像ではなくテキストのコードで上の正規表現を出しておきます。 RE = /(?<s>[

        RubyKaigi 2023での発表の「2進数の足し算を計算する正規表現」の解説
      • 正規表現を学んでみませんか | さくらのナレッジ

        それぞれの意味については使っているうちに自然と身につくかと思います。無理に急いで丸暗記しなくても良いです。 ほかにもたくさんあります。また、使用するツールやプログラム言語によって異なる場合があります。 実践 ディレクトリだけを一覧表示 例えば /etc 以下のファイルを一覧で表示させ、その中からディレクトリ(フォルダ)であるものを表示させたい場合、以下のようにします。 % ls -l /etc | grep '^d' 実行結果(例) % ls -l /etc | grep '^d' drwxr-xr-x 2 root root 4096 Apr 11 06:01 ImageMagick-6 drwxr-xr-x 1 root root 4096 Apr 11 06:02 alternatives drwxr-xr-x 1 root root 4096 Apr 11 06:02 apache

          正規表現を学んでみませんか | さくらのナレッジ
        • 20日目: 正規表現が ReDoS 脆弱になる 3 つの経験則

          はじめに 皆さんこんにちは.3回生のらん(@hoshina350)です. 文字列マッチングに便利な正規表現ですが,テキトーに書くと脆弱になり得るという情報を耳にしてから色々と原因や対策を調べていました. しかし,多くの記事で紹介されていた対策方法は,「独自の正規表現を使用しないー」とか「 * や + などの繰り返し表現はなるべく使わないー」とかいう なんともふわっとしたものでした.これでは「いやぁ確かにそうなんかもしれんけど…そうゆう訳にはいかんやんか…」と納得できません. つまり,「本質的に何が問題」で,「具体的にどんな特徴のある正規表現が脆弱になり得るのか」を知りたい訳です. そこで,様々な文献を調査してみました.本記事では調査して溜まった知見を紹介していきます. 本記事は, Purdue大学のJames Davis教授による “The Regular Expression Denia

            20日目: 正規表現が ReDoS 脆弱になる 3 つの経験則
          • はじめに - 作って学ぶ正規表現エンジン

            はじめに 正規表現は様々なプログラミング言語で利用されている、テキスト処理のためのパターン言語です。 正規表現はテキストエディタでの検索や置換、入力文字列のバリデーションなどプログラミングの様々な分野で実用されています。 ある程度の規模のプログラムにおいて、正規表現を全く利用しない (利用していない) ということはほとんど無く、正規表現は今日のプログラミングにおいて非常に重要なパーツだと言えます。 JavaScriptやRubyといったプログラミング言語では正規表現はファーストクラスのリテラルとして実装されているため、とても簡単に利用できます。 例えば次のRubyプログラミングでは変数fooに入った文字列の部分にfizzかbuzzが含まれるかどうかを、正規表現/fizz|buzz/を使ってチェックしています。 foo =~ /fizz|buzz/ さらに、計算機科学 (コンピューターサイエ

            • なぜGo言語の正規表現は遅いと言われるの? - Qiita

              はじめに Goの正規表現は遅いと言われていることが以前から疑問だったので調査してみました。 こちらの記事やこちらの記事を拝見する限り ① 現実的なユースケース(例えばURLのパースなど)ではGo言語の正規表現は使うべきではなく、stringsパッケージの標準の関数を利用した方がパフォーマンスとしては良い。 ② Go言語で正規表現を利用するために必要な"正規表現オブジェクト"を並行にアクセスするにはパフォーマンスが問題になるので注意が必要。 とあります。その理由は、それぞれ以下に集約できるようです。 ① Go言語標準の正規表現ライブラリは、正規表現と検査文字列の長さに対して常に$O(n^2)$のオーダーで計算量が増加する安定したアルゴリズムを採用している。 ② "正規表現オブジェクト"を用いたマッチング処理には排他制御が行われている。 調べてみる Go言語のpkg/regexpの公式ドキュメ

                なぜGo言語の正規表現は遅いと言われるの? - Qiita
              • HomebrewのCaskリポジトリを介した任意コード実行

                English version is available here: https://blog.ryotak.net/post/homebrew-security-incident-en/ (公式インシデント報告はこちらから読むことができます: https://brew.sh/2021/04/21/security-incident-disclosure/) はじめにHomebrewプロジェクトはHackerOne上で脆弱性開示制度(Vulnerability Disclosure Program)を設けており、脆弱性の診断行為が許可されています。 本記事は、当該制度に参加し、Homebrewプロジェクトのスタッフから許可を得た上で実施した脆弱性診断行為について解説したものであり、無許可の脆弱性診断行為を推奨することを意図したものではありません。 Homebrewに脆弱性を発見した場合は、

                  HomebrewのCaskリポジトリを介した任意コード実行
                • はや(・ε・)ぶさ on Twitter: "G社内のコード検索ツールは何十億行もあるmono repo にもかかわらず正規表現による検索結果が一瞬で返ってくるのがヤバくて、どういう実装なのか気になってたのだけど Russ Cox がオープンな記事を書いてたのを見つけた。これ… https://t.co/MI5xYCtvjD"

                  G社内のコード検索ツールは何十億行もあるmono repo にもかかわらず正規表現による検索結果が一瞬で返ってくるのがヤバくて、どういう実装なのか気になってたのだけど Russ Cox がオープンな記事を書いてたのを見つけた。これ… https://t.co/MI5xYCtvjD

                    はや(・ε・)ぶさ on Twitter: "G社内のコード検索ツールは何十億行もあるmono repo にもかかわらず正規表現による検索結果が一瞬で返ってくるのがヤバくて、どういう実装なのか気になってたのだけど Russ Cox がオープンな記事を書いてたのを見つけた。これ… https://t.co/MI5xYCtvjD"
                  • 正規表現の勉強で役に立ちそうなリンク

                    りゅうりゅう@VBAer × ココナラPRO認定 @blacklist_ryu 書籍「マンガでわかる正規表現」に公開されてた正規表現チェッカーのサイト。 ただ、これは一般的な正規表現で、VBAで使えるのとは違う部分もあるので、ちゅんさんの正規表現関数を流用させていただいて、同様のものをExcelで作成中! ymori.com/regexcheck/ pic.twitter.com/uJhO4DIzPn 2021-03-21 15:39:02

                      正規表現の勉強で役に立ちそうなリンク
                    • GitHubのCTOも注目する「grep.app」は正規表現を使ってGitHubリポジトリが検索できる

                      grep.app https://grep.app/ 「grep.app」は、正規表現を使ってGitHubリポジトリを検索できるWebサービスです。 まだローンチしたてということで、検索できるリポジトリ数は50万。全体で1億リポジトリを抱えるGitHubにおいてはまさに一部のみであるが、本家GitHubのCTOも注目するサービスとあって話題にのぼっています。 GitHubリポジトリを検索してみる 機能はいたってシンプル。Regular expressionにチェックをつけて、正規表現で検索するだけ ヒットしたリポジトリ結果をみることができます。 例えば、このように通常のAnd検索にしにくい場合であっても、簡単に引くことができます。 Hacker News Jason Warner氏もクールな仕事っぷりを称賛しています。 もし、正規表現で困ったら・・・ 便利な検索ツールも、最大の課題は、正規

                        GitHubのCTOも注目する「grep.app」は正規表現を使ってGitHubリポジトリが検索できる
                      • 文字数のカウントはどれが正解なのか?

                        A. ユースケース次第でどう実装すべきかは変わる。Intl.Segmenter が万能というわけでもない。 (クソ最悪な小バズをかましてしまったので、贖罪も兼ねて記事を書きました) 「文字数を数える」のは難しい 「文字数を数える」実装は意外と難しいです。というのも、アルファベットや数字だけなら str.length でも正しく数えられますが、絵文字や異体字などが入った文字列は見た目どおりに数えられません。

                          文字数のカウントはどれが正解なのか?
                        • Regex Hunting

                          Regex Huntingは、凶悪なモンスターを倒しながら正規表現が学べる学習ゲームです。

                            Regex Hunting
                          • 正規表現を用いる際のパフォーマンスチェックリスト - ヤドカリラボ

                            Python で正規表現を書いて分析や機械学習のモデル構築、予測に活用する際には、正規表現実行時のパフォーマンスが足かせとなる場合があります。 正規表現の処理に用いられる実行時間がどのくらいになるかはテキストデータの分量や機械学習モデルの精度検証の実行回数に応じて変わってきます。 一つのテキストデータに対する正規表現の実行時間を少なくすることで、タスクによっては全体として大幅な処理時間の短縮が見込まれます。そのことによって精度検証を素早く回したり、テキスト処理実行時の前処理の実行時間を削減する等の効果が得られます。精度検証の間の実行待ち時間やバッチ・キューによる予測時の時間が減り、最終的には精度向上の機会の向上やサービスのユーザ体験の向上に繋がるというわけです。 本記事では Python を用いた場合の正規表現のパフォーマンス改善候補についてリストアップし、具体的な対応方法について見ていき

                              正規表現を用いる際のパフォーマンスチェックリスト - ヤドカリラボ
                            • GitHub - pemistahl/grex: A command-line tool and Rust library with Python bindings for generating regular expressions from user-provided test cases

                              You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

                                GitHub - pemistahl/grex: A command-line tool and Rust library with Python bindings for generating regular expressions from user-provided test cases
                              • JavaScriptで文字列が小文字・大文字・数字を全て含むかどうか判定する方法について - Qiita

                                タイトルにあるように、文字列が半角英小文字・大文字と半角数字を全て含むかどうかを判定するという機会は少なくありません。特に、文字種の多さがパスワードの強さであるという教義の持ち主である場合に顕著です。もちろん長さは16文字以内です。 さて、この判定は一見単純に見えて一筋縄ではいきません。文字列の条件判定といえば正規表現ですが、「全て含む」という条件をきれいに書くのは少し難しいでしょう。そこで、この記事ではこの条件を判定する諸方法について雑に考察します。 愚直に正規表現を使う方法 正規表現では、「ある文字種をひとつ含む」という条件を書くのは簡単です。例えば半角小文字を含むという文字列は/[a-z]/という正規表現で判定可能です。これを用いれば、正規表現を3回使うことで上述の条件を判定できます。 const ratz = /[a-z]/, rAtZ = /[A-Z]/, r0t9 = /[0-

                                  JavaScriptで文字列が小文字・大文字・数字を全て含むかどうか判定する方法について - Qiita
                                • キャッシュによるRubyの正規表現のマッチングの高速化の紹介 - クックパッド開発者ブログ

                                  9月からRuby開発チームにインターンシップとして参加している@makenowjustです。 総合研究大学院大学の学生で、普段は情報セキュリティに関する研究をしています。 インターンシップでは、キャッシュ (メモ化) を利用したRubyの正規表現の高速化を行いました。 ReDoSと呼ばれる、バックトラックが爆発することでマッチング時間が膨大になる脆弱性があります (ReDoSについては、拙作ですがWEB+DB PRESSに掲載された記事があります)。 近年、ReDoSは多く報告されており、Rubyもその例外ではありません (参考1、参考2)。 今回実装した最適化は、ReDoSを防ぐことを目的としたもので、多くの正規表現のマッチング時間が文字列の長さに対して線形となります。 ReDoSが起こる正規表現の例として、/^(a|a)*$/が挙げられます。 今回の修正の前後での実行時間を比較すると、

                                    キャッシュによるRubyの正規表現のマッチングの高速化の紹介 - クックパッド開発者ブログ
                                  • Perlで\p{Hiragana}とかが記号にマッチする問題 - Qiita

                                    みなさん、ワンライナーで日本語を簡単に処理したい場合、何を使うでしょうか。 ワンライナーで言語処理といえばPerlですよね[要出展]。 Perlでは、「ひらがな」「カタカナ」「漢字」といった文字にマッチする正規表現を簡単に書くことができます。 例えば、青春→鯖鰆みたいなやつという記事では、漢字にマッチさせるのに\p{Han}という正規表現を使っていました。 $ perl -Mutf8 -CSD -le 'print "漢" =~ m{\p{Han}} ? 1 : 0' 1 $ perl -Mutf8 -CSD -le 'print 1 if "あ" =~ m{\p{Han}} ? 1 : 0' 0 なんてこった。 "「"は明らかに漢字じゃないだろう? 調べてみると、perlunicodeに以下のような記述がありました。 Prior to Perl v5.26, the single for

                                      Perlで\p{Hiragana}とかが記号にマッチする問題 - Qiita
                                    • Goの正規表現が遅いって言う人がいたから、(速い)正規表現エンジンを作ったよ

                                      はじめに 「Goの正規表現は遅い」 そんなふうによく言われていました。(最近はあまり聞かなくなりましたが) たとえば、↓の記事ではPythonの正規表現と比較して1.5倍くらい遅いという結果になっています: この話には「Goの正規表現は最悪時間が短くなるように安定したアルゴリズムを採用しているから」という回答があります: ↑の記事の比較では、GoがPerlに対して約10倍以上高速という結果が出ているので、「Goの正規表現は遅くない!はい、論破ー!」というわけですね。 なんでこうなるのかも↑の記事で説明されているとおりですが、Perl(などのバックトラック型エンジン)が入力長に対して指数関数的に実行時間が伸びていくのに対し、Goの正規表現エンジンは入力長に対して線形時間で実行時間が伸びていくアルゴリズムを採用しているため、入力が長くなると急激にGoのほうが有利になるからです: 一方で、入力が

                                        Goの正規表現が遅いって言う人がいたから、(速い)正規表現エンジンを作ったよ
                                      • Ruby の正規表現で素数かどうかを確認する方法

                                        Ruby の正規表現で素数かどうかを確認する方法 作成日 2018.09.11 更新日 2018.09.13 Regex Ruby Ruby の正規表現を使って, 素数かどうかを確認するメソッドを作ってみました. パフォーマンスは正直全然良くないのですが, 余興の様なものとしては面白いのではないかと思います. 正規表現の説明もします. そもそも素数というのは, どの様な数なのでしょうか. Wikipedia によりますと次のように定義されています: 素数(そすう、英: prime number)とは、1 より大きい自然数で、正の約数が 1 と自分自身のみであるもののことである。正の約数の個数が 2 である自然数と言い換えることもできる。 なので 0, 1, 4, 6, 8, 9, 10, 12 といった数は素数ではなく, 2, 3, 5, 7, 11, 13 といった数が素数になります.

                                        • i Hate Regex - The Regex Cheat Sheet

                                          i Hate Regex is a regex cheat sheet that also explains the commonly used expressions so that you understand it. Stop hating and start learning.

                                          • プログラム中の文字列抽出機能を自動修正する技術を世界に先駆けて実現~専門知識をもたない開発者でも正規表現の修正が容易に~ | ニュースリリース | NTT

                                            日本電信電話株式会社(本社:東京都千代田区、代表取締役社長:島田 明、以下「NTT」)と学校法人早稲田大学(本部:東京都新宿区 理事長:田中愛治 以下、「早稲田大学」)は、情報漏洩やサービス停止の原因となりうる文字列抽出機能の誤りを自動修正する技術を世界で初めて実現しました。Webサービスにおけるユーザの入力値などから任意の文字の並び(文字列)を抽出する場合、一般的に文字列パターンを表すために正規表現(※1)と呼ばれる記法が利用されています。正規表現は複雑な文字列パターンを簡潔に記述可能である反面、非常に難解であり、誤った記述が修正されないまま残っている事例が確認されています。 本技術により、専門知識を持たない開発者でも正規表現の誤りを自動修正することが可能になるため、安全なサービスの実現が期待できます。 本技術の詳細は、2023年6月17日に開催されるプログラミング言語分野の最難関国際会

                                              プログラム中の文字列抽出機能を自動修正する技術を世界に先駆けて実現~専門知識をもたない開発者でも正規表現の修正が容易に~ | ニュースリリース | NTT
                                            • 不必要な制御文字への対処 - pixiv inside

                                              こんにちは、晴れて2020新卒になったmipsparcです。最近は趣味の鉄道技術系同人誌の新版が出来上がって喜んでいます。 本記事では、入力値には必ずと言っていいほど混入する不必要な制御文字への対処方法をご紹介します。ユーザーに文字列を入力してもらうことのあるすべてのサービスで活用できる話かと思います。 不要な制御文字が入ることで生じる問題 前提として、この記事は制御文字類が必ずしも邪魔と言いたいわけではありません。 制御文字は多言語対応(特に右から左方向に記述する言語)などで重要なときもありますが、今回は問題が発生しうるケースのお話をします。 「‪腐向け」 「メリークリスマス‬」 「ゾンビ」 なんの変哲もない3つのイラストタグですが、どれも不可視の制御文字が混入しています。 $ php -r "var_dump(json_encode('腐向け'));" string(26) ""\u2

                                                不必要な制御文字への対処 - pixiv inside
                                              • ワイの正規表現入門 - Qiita

                                                とあるWeb制作会社にて ワイ「社長、こないだ頼まれたショッピングサイトの件なんですけど」 ワイ「ご注文フォームのコーディング、完了しましたで!」 社長「おお、ありがとうな」 ワイ「ほな、飲みに行ってきますわ!」 社長「・・・いや待てや(まだ15時やし)」 社長「何やこのフォーム」 ワイ「何ですかいな」 ワイ「デザイン通り、完璧にコーディングできてますやん」 社長「いやバリデーションが全くされとらへんがな」 ワイ「グラデュエーション?」 ワイ「何を卒業するんでっか」 社長「バリデーションや」 社長「貴様をこの会社から卒業させたろか」 バリデーションとは 社長「バリデーションちゅうのは、不正な値やないかどうか確認することや」 社長「例えば数字を入力してほしいフォームに、文字列を入力して送信されても困るやろ?」 社長「そういうのをちゃんとチェックするのがフォームバリデーションや」 ワイ「あ、あ

                                                  ワイの正規表現入門 - Qiita
                                                • NTTと早大、誤った正規表現の文字列抽出を自動で修正する技術を発表

                                                  印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます NTTと早稲田大学は6月16日、誤った正規表現の文字列抽出を検出して自動的に修正する技術を世界で初めて実現したと発表した。同17~22日に開催される「PLDI2023」で詳細を報告するという。 今回開発した技術は、多様なバリエーションを扱うことからあいまいさのない正確な記述が求められる正規表現の文字列抽出において、誤った記述を検出し自動的に修正する。NTTは、正規表現によるパターンの確認を実施するプログラムの振る舞いとして、「ECMAScript 2023」に完全準拠した正規表現エンジンの振る舞いを理論モデルとして厳密に定義し、この理論モデルに従って修正結果となる正規表現に誤りがないことを保証する条件を生成する方法を提案した。 さらに、

                                                    NTTと早大、誤った正規表現の文字列抽出を自動で修正する技術を発表
                                                  • なぜ正規表現の行頭と行末を表す記号として「^」と「$」が採用されたのか?

                                                    なぜ正規表現では「^」と「$」という記号を行の先頭・末尾を示す記号として採用したのかという歴史について、ソフトウェアエンジニアのヒレル・ウェイン氏がブログに投稿しました。 Why do regexes use `$` and `^` as line anchors? • Buttondown https://buttondown.email/hillelwayne/archive/why-do-regexes-use-and-as-line-anchors/ 正規表現は「文字列の集合を一つの文字列で表現する方法の一つ」で、例えば「/^G.*/」という一つの文字列を使用して「Gから始まる文字列全て」のようにたくさんの文字列の集合を表現できます。そうした正規表現で使用される文字のうち、「^」は行頭に一致し、「$」は行末に一致する文字となっています。 これら2つの文字はQEDテキストエディタのケ

                                                      なぜ正規表現の行頭と行末を表す記号として「^」と「$」が採用されたのか?
                                                    • 正規表現が"$"と"^"をラインアンカーとして採用した理由 | ソフトアンテナ

                                                      「正規表現」はさまざまなプログラミング言語やアプリケーションから利用できますが、正規表現で使われている「記号」がどのように選ばれたのか不思議に思っている方もいるかもしれません。 今回、正規表現の"$"と"^"が行末・行頭を示すラインアンカーとして選ばれた理由を推測するブログ記事、「Why do regexes use `$` and `^` as line anchors?」が公開され注目を集めています(Reddit)。 記事を作成したコンサルタントのHillel Wayne氏によると、正規表現が最初に登場したのはKen Thompson氏が移植したQEDテキストエディタだとのことです。移植版のQEDエディタのマニュアルには以下のような情報が掲載されています。 b) "^" is a regular expression which matches character at the beg

                                                        正規表現が"$"と"^"をラインアンカーとして採用した理由 | ソフトアンテナ
                                                      • アプリからファイアウォールにまで使われる正規表現を標的にした「ReDoS攻撃」とは?

                                                        サーバーやネットワークに意図的に負荷をかけ、サービス障害を引き起こすDoS攻撃の中でも、正規表現のパターン処理の脆弱性を利用した攻撃をReDoS攻撃と呼び、StackOverflowやCloudflareもその標的となったことがあります。パデュー大学の電気・コンピューター工学の教授であるジェームズ・デイビス氏が、ReDoS攻撃の原因となる典型的な正規表現とその対策について語っています。 The Regular Expression Denial of Service (ReDoS) cheat-sheet https://levelup.gitconnected.com/the-regular-expression-denial-of-service-redos-cheat-sheet-a78d0ed7d865 正規表現とは、いくつかの文字列をひとつの文字列でパターンとして表現する方法のこ

                                                          アプリからファイアウォールにまで使われる正規表現を標的にした「ReDoS攻撃」とは?
                                                        • JavaScriptで平仮名(ひらがな)を判定する - Qiita

                                                          regex = /*ここに何らかの正規表現*/; regex.test("あいうえお"); // -> true regex.test("あぁ"); // -> true regex.test("aiueo"); // -> false regex.test("あいueo"); // -> false regex.test("あい うえお"); // -> false

                                                            JavaScriptで平仮名(ひらがな)を判定する - Qiita
                                                          • PHP / Ruby / Python: 住所から正規表現で都道府県を抽出してみる|TechRacho by BPS株式会社

                                                            BPSの福岡拠点として一緒にお仕事させて頂いてます、株式会社ウイングドアのアリタです。 サイト開発を行なっていると、ユーザー情報や会社情報などで入力された住所データを扱う事があると思います。 今回は正規表現を使って住所から「都道府県」を抽出する方法をご紹介します。 前提 今回は下記の前提のもとで進めていきます。 「都道府県」より下の市区町村などは今回スコープ外 住所の文字コードはUTF-8を想定 PHP / Ruby / Pythonの各言語で住所から都道府県を抽出する PHPで都道府県を抽出してみる さくっと試すため、PHPのインタラクティブモードを利用します。 $ php -a Interactive shell 住所を$addressという変数に代入します(ここではBPSさんの住所を引用)。 php > $address = "東京都新宿区西新宿6-20-7コンシェリア西新宿TOWE

                                                              PHP / Ruby / Python: 住所から正規表現で都道府県を抽出してみる|TechRacho by BPS株式会社
                                                            • 'foo@example.com'.match(/\x{email}/) - Qiita

                                                              'foo@example.com'.match(/\x{email}/g) // ['foo@example.com']

                                                                'foo@example.com'.match(/\x{email}/) - Qiita
                                                              • 基本的な正規表現一覧

                                                                mb_eregi_replace("[\\\]","/",$s);  mb_eregi_replace("(\\\)","/",$s); preg_replace("/\\\/","/",$s);     eregi_replace("[\]","/",$s); str_replace("\\","/",$s);

                                                                • 論文執筆にも役立つ!? Wordのワイルドカードを使いこなそう!|『人文×社会』の中の人

                                                                  どうも、『人文×社会』の中の人です。 今回は、Microsoft Wordの便利機能「ワイルドカード」についてご紹介していきたいと思います。 ワイルドカードというと、なんかトランプを連想してしまいますが、実はれっきとした情報処理の用語でもあります。これをマスターすると、論文執筆にも役立てることができます。 ワイルドカードとは? 「ワイルドカード」とは、コンピューター上であるパターンの文字列を検索する時に使う特殊文字のことです。 全角ひらがなや半角英数字といった同じ種類の文字列、「第○回」「○番目」のような同じパターンの文字列は、このワイルドカードを使うと一括で検索することができます。プログラミングでよく使う「正規表現」と似ています。 論文執筆で普段使うMicrosoft Wordの検索・置換機能でも、このワイルドカードを使うことができます。 例えば、以下の文章を見てください。 ここから、「

                                                                    論文執筆にも役立つ!? Wordのワイルドカードを使いこなそう!|『人文×社会』の中の人
                                                                  • 第2回 Pythonの脆弱性 ~ReDOS~ | gihyo.jp

                                                                    では、なぜこのようなことが起きてしまうのでしょうか。具体的な脆弱性の解説に移る前に、まずはReDoSのしくみについて説明します。 ReDoSのしくみ ReDosの脆弱性を理解するためには、そもそも正規表現によるマッチングを行う処理系である、正規表現エンジンのしくみについて知る必要があります。 正規表現エンジンの概要 正規表現エンジンとは、簡単に言えば「ユーザーから受け取った文字列(入力文字列)が、正規表現で表される文字列と合致するか否か」を判定するプログラムです。そしてこのプログラムのキモとなる「正規表現文字列の解釈」と「入力文字列が合致するか否かを判定する部分」は、「⁠有限オートマトン」を利用して実現しています。 具体的には、正規表現の文字列を有限オートマトンに変換後、入力文字列を有限オートマトンの入力として与え、文字列中に正規表現にマッチする部分があるか否かを、有限オートマトンの状態を

                                                                      第2回 Pythonの脆弱性 ~ReDOS~ | gihyo.jp
                                                                    • たった4文字でコード検索の精度がブチあがる正規表現 - Qiita

                                                                      まだまだ入社1年目、株式会社LIFULLの暴れ回る新卒、 @pal4de です。 正規表現が大好きです。 これは、その中でもとくにお気に入りな正規表現「単語境界 \b」の検索における威力を説き、褒め称える記事です。 「正規表現、まァ基本は一通り勉強したな...」 というあなたにオススメしたい、ステップアップにピッタリなヤツです。 これは何? 改めて、 正規表現パターン \b は「単語境界」を表す記法です1。 Word BoundaryのBですね。 ここでは、「単語」は単語構成文字 \w = [A-Za-z0-9_] の連続と定義します2。 挙動の例 実際の挙動を見てみるとこんな感じ3。 正規表現 検索対象文字列 マッチする位置

                                                                        たった4文字でコード検索の精度がブチあがる正規表現 - Qiita
                                                                      • コーディング作業が爆速に! すぐ使える便利なHTML5スニペット15個まとめ

                                                                        HTMLはとても簡単に作成できますが、Webページの制作となると、フォームの作成など、何度も繰り返す必要のある作業もあります。このユーザーガイドでは、コーディング作業ですぐに使えるフロントエンド向けHTMLスニペット15個をまとめてご紹介します。 HTML5基本テンプレート 新しいWebプロジェクトを開始するときは、基本となるテンプレートが必要です。HTML5の基礎として役立つ、無駄のないスッキリとしたテンプレートです。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>無名のドキュメント</title> <meta name="description" content="メタディスクリプションを記述します。"> <link rel="stylesheet" type="text/css" href="theme.css

                                                                          コーディング作業が爆速に! すぐ使える便利なHTML5スニペット15個まとめ
                                                                        • 日常でも役立つかも?Web広告運用でも使う「正規表現」の基本 - リスティング広告運用代行ならASUE

                                                                          こんにちは! ASUE株式会社広報のN村です。 Web広告運用やWebマーケティングに関連した業務をしている方は、一度はどこかで「正規表現」というものを聞いたことがあるのではないでしょうか? 実際に正規表現の表記を一見すると暗号のような不可解な文字列に見えるかもしれませんが、基本的なことを知っておくと日々の業務にも役立つので、簡単にご紹介したいと思います。 ちなみに、わたしは日常でもGmailから特定の文字列を正規表現を使用して抽出→カレンダーやタスクに自動登録していて、例えばこれでチケットの当選→支払のタスク登録を行なったり、ホテルの予約→予約メールから自動でカレンダーへ予定登録などを行なっています。役立ちますね。 正規表現とは? 正規表現とは、文字列のパターンを汎用的に書き表す表記法のことです。主に、文字列の検索や置換などを行うときに使用します。 例えば、「1192年、源頼朝は征夷大将

                                                                            日常でも役立つかも?Web広告運用でも使う「正規表現」の基本 - リスティング広告運用代行ならASUE
                                                                          • Onigmoのインタプリタをdirect threaded codeに置き換えてCRubyを8%高速化した話 - 開発日記

                                                                            Ruby言語の正規表現エンジンとしても使われているOnigmo(鬼雲)を高速化したのでその話をします。 Onigmoでは、正規表現のマッチにはバイトコードインタプリタを用いてNFAの実行をしています。バイトコードインタプリタの高速化には古くから知られている技法として、direct threaded codeがあり、この技法を用いればswitch-caseを用いて実装されたインタプリタと比べると間接jumpの除去が行えるなど高速化が期待できます。実際、Onigmoでもswitch-case によるdispatchからこのdirect threaded codeに変えることで高速化しています。 keens.github.io github.com ... と思ったらdirect threaded codeではなく、token threaded codeという実装になっておりました。(ref:

                                                                              Onigmoのインタプリタをdirect threaded codeに置き換えてCRubyを8%高速化した話 - 開発日記
                                                                            • 正規表現検索の効率化

                                                                              GMO NIKKOのT.Iです。 今回は当社のTRUE データフィードで使用している正規表現検索の効率化についての記事となります。 前提(背景と目的) まずは宣伝(笑) 当社公式サイトでは上記となっていますが、簡単にいうと ・クライアントからデータを預かる ・預かったデータを広告媒体毎のフォーマットの変換する ・変換したデータを指定された場所に送信する ということをやっています。 その中のデータの変換時に禁止文言が入ったデータを行ごと除外するということをやっています。 大量のデータに禁止文言が入っているかをチェックする必要があるのですが、 初期想定では精々10万件に対して100~1000個の禁止文言をチェックする程度(1億回程度)で十分と判断していました。 ですが運用後に禁止文言が3万を超えてしまい、チェック処理が10万件×3万=30億回のチェックを行う場合があり、処理時間がかなり長くなっ

                                                                                正規表現検索の効率化
                                                                              • A New RegExp Engine in SpiderMonkey – Mozilla Hacks - the Web developer blog

                                                                                Background: RegExps in SpiderMonkey Regular expressions – commonly known as RegExps – are a powerful tool in JavaScript for manipulating strings. They provide a rich syntax to describe and capture character information. They’re also heavily used, so it’s important for SpiderMonkey (the JavaScript engine in Firefox) to optimize them well. Over the years, we’ve had several approaches to RegExps. Con

                                                                                  A New RegExp Engine in SpiderMonkey – Mozilla Hacks - the Web developer blog
                                                                                • ゼロからはじめるPython(78) Pythonの正規表現を使って200個のファイルをフォルダ分けしよう

                                                                                  正規表現を使ったパターンマッチはとても便利なのだが、なんだか難しそうというイメージを持っていないだろうか。正規表現はワイルドカードを拡張したものと考えて基本だけを覚えるだけでも、いろいろな場面で活用できる。今回は、正規表現を使って大量ファイルの自動分類に挑戦してみよう。 正規表現でファイルをフォルダに分類したところ 正規表現とは? 正規表現とは文字列を特殊なパターンを使って表現するものだ。ファイル操作に使うワイルドカードを拡張したものと言えば分かりやすいだろうか。今や、正規表現は大抵のテキストエディタに実装されていることもあり、正規表現を覚えるなら、Pythonのプログラミングだけでなく、日々のあらゆる場面で役立つとも言える。 なお、以前本連載の33回目でも正規表現について紹介したが、今回はPythonでファイルを分類する目的のため、基本の基本に絞って紹介しよう。 Pythonで正規表現を

                                                                                    ゼロからはじめるPython(78) Pythonの正規表現を使って200個のファイルをフォルダ分けしよう