並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 66件

新着順 人気順

regexpの検索結果1 - 40 件 / 66件

regexpに関するエントリは66件あります。 正規表現regexプログラミング などが関連タグです。 人気エントリには 『心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館』などがあります。
  • 心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館

    長年、後回しにしてきた「正規表現」。四の五の言わずにはじめようよ!と20年前の自分に伝えたく、まとめてみました。 詳しい方が見ると、乱暴だったり、おかしなところがあると思いますが、入り口に立つことが大切だと考えています(書いた人は文系・グラフィックデザイン関連です)。 はじめにたとえば、文章中に「コンピュータ」と「コンピューター」が混在していて、これを「コンピューター」に統一したいとき、あなたなら、どうしますか? 単純な検索置換なら、次のような順番で処理できます。 ❶「コンピューター」を「コンピュータ」に一括置換する ❷「コンピュータ」を「コンピューター」に一括置換する ❸ ちょっと心配なので「ーー」(音引きの繰り返し)をチェック これはこれでアリなのですが、1回の作業でできたらベターです。 しかし、「コンピュ-タ」のように正しく音引き(ー)が入力されていない場合には単純な検索置換ではお手

      心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館
    • 正規表現の先読み・後読み

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

        正規表現の先読み・後読み
      • りょうくんグルメの文体を自動でもとに戻すやつを作りました - 開け閉め

        りょうくんグルメをご存知だろうか。知らなくても、本人のツイートの雰囲気は料理のレシピなんかで一度は見た文脈のはずだ。 こんなやつ。 まじでこの世の全てのタピオカ好きに教えてあげたいんだが新宿三丁目のceleb縁味には全ての人間を虜にする禁断のオレオミルクフォームがある。 これが濃厚黒糖で超絶美味いからぜひ全国のタピオカ好き、タピオカを愛する者たち、タピオカを憎む者たち、全てのタピオカ関係者に伝われ pic.twitter.com/wnnPvkJ2pr— りょうくんグルメ (@uryo1112) 2019年6月15日 「りょうくんグルメ」は文章が情報量に対してやたら長いので、pythonの練習も兼ねてアイデンティティである上から目線の構文を取り去ることにした。逆りょうくんグルメである。 手順は大雑把に分けて以下の3ステップ。 1. Twitterからりょうくんグルメのツイートをスクレイピング

          りょうくんグルメの文体を自動でもとに戻すやつを作りました - 開け閉め
        • 正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話

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

            正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話
          • 正規表現の脆弱性 (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) と呼ばれる脆弱性です。正確に理解するのが難しい脆弱性なので、少し解説してみたいと思います。 結論 長い記事になるので、最初に「とりあえずこれだけ知っ

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

              入社1年目、趣味は整理整頓、 @pal4de です。 正規表現が大好きです。 先日投稿した記事が好評いただき本当にうれしかったです。もっとたくさんの人に読んでもらいたい!!! さて、上の記事で紹介したのは単語境界 \b でしたが、これは先読み/後読みを駆使して下記の通りに表せると紹介しました。 便利な\bですらショートハンドに過ぎず、真に強力なものは 先読み(?=...)と後読み(?<=...) だということを主張したい!!! わかりすい図解も添えましたので、是非お楽しみください🏝️ 正規表現の記号は4種類 先読みの紹介に入る前に、改めて正規表現を俯瞰してみましょう。 誤解を恐れずに言えば、正規表現に出てくる記号の種類は4つしかないといえます1 2。 このようにとらえてみると、正規表現と向き合うのがだいぶ楽になります。体系化された理解への第一歩ですね 🗿 図にもある通り、 行頭 ^ も

                シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita
              • アイヌ語仮名「ㇷ゚」に対する正規表現の罠

                導入 アイヌ語は日本語と異なり、閉音節(子音で終わる音節)も存在するので、表記の際音素文字であるラテン文字なら、そのまま p, t, k, m, n, s, r などの子音文字を後ろの付ければ良いわけなので、アイヌ語ローマ字表記では、何も問題が生じない。しかし、元々開音節言語である日本語に特化したカタカナのような仮名文字で表記する際、鼻音 n は「ン」でなんとかなる(実はそれでもまずい事になっているけどここでは割愛する)が、p, t, k, m, n, s, r, h はどうしようもないので、特殊の捨て仮名(小書き仮名文字)を利用することになっている。 具体的には以下のような特殊仮名文字(通称 アイヌ語仮名)である。 ㇷ゚ -p ッ -t ㇰ -k ㇺ -m ㇱ -s ㇻ -(a)r, ㇼ -(i)r, ㇽ -(u)r, ㇾ -(e)r, ㇿ -(o)r お分かり頂けただろうか… 問題 r

                  アイヌ語仮名「ㇷ゚」に対する正規表現の罠
                • 君たちは正規表現におけるインド数字の罠にハマったことはあるかい?(١٢٣٤٥٦٧٨٩) - Qiita

                  import re re.match(r'\d{4}-\d{2}', '٢٠٢٢-٠٦') Pythonで書いてはいますが、内容を補足します。「'٢٠٢٢-٠٦'」という文字列が、数字4文字+ハイフン+数字2文字にマッチするかどうか、という正規表現を書いています。 一見するとどう見ても数字4桁ではないので、正規表現にマッチしないように見えますよね???? 実は正規表現にマッチします!!!というのが今回の記事の内容になります。 そもそも正規表現における数字の扱いとは 今回はPythonの正規表現のライブラリを利用しているので、公式のリファレンスを見てみましょう。 該当の部分には以下のような記述があります。 \d Unicode (str) パターンでは: 任意の Unicode 10 進数字 (Unicode 文字カテゴリ [Nd]) にマッチします。これは [0-9] とその他多数の数字を

                    君たちは正規表現におけるインド数字の罠にハマったことはあるかい?(١٢٣٤٥٦٧٨٩) - Qiita
                  • Cloudflare、ファイアウォールに追加した「正規表現のミス」が全面的なCDNダウンの原因と報告。「キルスイッチ」で解除 - Publickey

                    Cloudflare、ファイアウォールに追加した「正規表現のミス」が全面的なCDNダウンの原因と報告。「キルスイッチ」で解除 日本時間で昨夜11時50分頃から約30分のあいだ、CloudflareのCDNが全面的にダウンし、同社のサービスを利用していたWebサイトなどが影響を受けた問題について、同社はブログを更新。 今回のCDNがダウンした原因は、ファイアウォールに追加した新ルールの中に正規表現のミスが含まれていたためであることを明らかにしました。 参考:CloudflareのCDNが全面的に約30分ダウンし、世界中のWebサイトが影響を受ける。原因はソフトウェアの動作不良。ロールバックで対応 ファイアウォールに新ルールを追加したことが引き金に 同社のCDNにはWebアプリケーションファイアウォールの機能があり、新たにこのファイアウォールに追加したルールの中に間違いが含まれていたことがCP

                      Cloudflare、ファイアウォールに追加した「正規表現のミス」が全面的なCDNダウンの原因と報告。「キルスイッチ」で解除 - Publickey
                    • Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発

                      Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発 WebブラウザにはJavaScriptを実行するためのJavaScriptエンジンが搭載されています。それはChromeであれば「V8」、Firefoxであれば「SpiderMonkey」と呼ばれ、それぞれのWebブラウザベンダがECMAScriptの標準に準拠したうえで独自に実装しています。 そしてJavaScriptは以前から正規表現の機能を備えているため、正規表現を解釈し展開するための正規表現エンジンもそれぞれのWebブラウザベンダが実装を行っていました。 その正規表現エンジンについてMozillaは今後、V8の正規表現エンジンのコードをそのままFirefoxのSpiderMonkeyに取り込むようにすると表明しました。 Mozillaはこれを実現するため、V8用の正規表

                        Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発
                      • 正規表現とセキュリティ / Regular Expressions and Their Security-Related Aspects

                        2020/03/15 にお茶の水女子大学内でセキュリティ・キャンプ (https://www.security-camp.or.jp/) の宣伝をした際に、それに合わせて小さな講義を提供しました。これはその発表資料です。 --- 誤りを見つけたら、Twitter (https://twitter.com/lmt_swallow) の DM かポートフォリオサイト(https://shift-js.info/) で示されているメールアドレスまでご連絡ください。

                          正規表現とセキュリティ / Regular Expressions and Their Security-Related Aspects
                        • ReDoS 検出の最先端 recheck の紹介 / State of the Art of ReDoS Detection

                          YAPC::Japan::Online 2022 での発表資料です。 recheck: https://makenowjust-labs.github.io/recheck

                            ReDoS 検出の最先端 recheck の紹介 / State of the Art of ReDoS Detection
                          • grep.app | code search

                            Search across a half million git repos. Search by regular expression.

                            • Vimmerに捧げる正規表現の基礎中の基礎 — KaoriYa

                              正規表現はVimに限らずコンピューター上でのテキスト操作において非常に強力です。 しかし学習の難しさも非情で多くのIT技術者、Vimmerが正規表現に苦しんでいるのを幾度となく目の当たりにしています。 ただ正規表現は本当にそんなに難しいのでしょうか。 いいえそんなことはありません。 正規表現は本来とても簡単な原理で学習も容易なのです。 にも関わらず難しいと思われてしまうのは、原理を理解しないまま外見上の機能をそのまま覚えようとするからです。 本記事では正規表現の原理にフォーカスし解説することで、Vimを含む様々な正規表現実装の利用難度を適切にしようという記事です。 本記事は Vim Advent Calendar 2019 の1日目の記事です。 「正規表現」はもともと形式言語という言語学の一分野の研究から生まれました。 言語学というのは言葉を科学的に研究する学問です。 形式言語はその中でも

                              • Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ

                                PerlにはRegexp::Assembleという便利なライブラリがあります。 複数の正規表現を受け取り、それらのいずれかにマッチする正規表現を構築するためのライブラリです。 my $ra = Regexp::Assemble->new; $ra->add( 'ab+c' ); $ra->add( 'ab+\\d*\\s+c' ); $ra->add( 'a\\w+\\d+' ); $ra->add( 'a\\d+' ); print $ra->re; # prints (?:a(?:b+(?:\d*\s+)?c|(?:\w+)?\d+)) このライブラリのGo実装を金曜日の夜から書き始めて、ようやく形になってきたので公開しました。 package main import ( "fmt" "log" "github.com/itchyny/rassemble-go" ) func main

                                  Regexp::AssembleのGo実装 rassemble-go を作りました - プログラムモグモグ
                                • その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法 | yamory Blog

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

                                    その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法 | yamory Blog
                                  • 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
                                        • はや(・ε・)ぶさ 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"
                                          • 正規表現を用いる際のパフォーマンスチェックリスト - ヤドカリラボ

                                            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
                                              • 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 といった数が素数になります.

                                                  • JSのウェブフレームワークで高速なルーターを実装する方法

                                                    https://nseg.connpass.com/event/251366/ での発表資料です。

                                                      JSのウェブフレームワークで高速なルーターを実装する方法
                                                    • 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.

                                                      • 不必要な制御文字への対処 - pixiv inside

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

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

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

                                                            ワイの正規表現入門 - Qiita
                                                          • JavaScriptで平仮名(ひらがな)を判定する - Qiita

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

                                                              JavaScriptで平仮名(ひらがな)を判定する - Qiita
                                                            • 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
                                                              • [Go] パフォーマンスが悪い正規表現パッケージの使い方をチェックするlinterを作った - My External Storage

                                                                TL;DR regexpパッケージのコンパイル処理はプロセス初期化時などに一度だけ行うのが望ましい https://golang.org/pkg/regexp regexp.MustCompileなど これをチェックするlinterを作った https://github.com/budougumi0617/regexponce gostaticanalysis/analysisutilを使えばすぐできた https://github.com/gostaticanalysis/analysisutil SSAは難しいけどおもしろい! regexpパッケージをコンパイルを使うときのお作法 Goの正規表現を使いたいときはregexpパッケージを使う。 このパッケージの使い方には注意すべき点がある。 https://golang.org/pkg/regexp/ 上記記事の以下の部分が注意点だ。 正

                                                                  [Go] パフォーマンスが悪い正規表現パッケージの使い方をチェックするlinterを作った - My External Storage
                                                                • 正規表現とは何なのか、makenowjustが正規表現に興味を持ったきっかけ。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.1 - STORES Product Blog

                                                                  2023年6月15日に『深掘りRubyKaigi 2023 with spikeolaf & makenowjust』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は第1部です。 hey.connpass.com イベントのアーカイブはYouTubeでも公開しています。 www.youtube.com 登場人物 ゲスト makenowjust/藤浪 大弥さん spikeolaf/金子 雄一郎さん STORES fujimura/藤村 大介 shyouhei/卜部 昌平 hogelog/小室 直 正規表現に興味を持ったきっかけ fujimura:最初は藤浪さん、makenowjustさんに正規表現の発表について伺おうと思います。まずは改めてRubyKaigi 2023でどんなことを発表したかを紹介いただけないでしょうか? makenowjust:Rubyの正規

                                                                    正規表現とは何なのか、makenowjustが正規表現に興味を持ったきっかけ。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.1 - STORES Product Blog
                                                                  • GitHub - yoav-lavi/melody: Melody is a language that compiles to regular expressions and aims to be more readable and maintainable

                                                                    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. Dismiss alert

                                                                      GitHub - yoav-lavi/melody: Melody is a language that compiles to regular expressions and aims to be more readable and maintainable
                                                                    • Rob Pike's simple C regex matcher in Go

                                                                      Rob Pike’s simple C regex matcher in Go August 2022 Back in 1998, Rob Pike – of Go and Plan 9 fame – wrote a simple regular expression matcher in C for The Practice of Programming, a book he wrote with fellow Unix hacker Brian Kernighan. If you haven’t read Kernighan’s “exegesis” of this code, it’s definitely worth the 30-minute time investment it takes to go through that slowly. With Go’s C herit

                                                                      • 正規表現の可視化ツールRegulexを使おう! - Qiita

                                                                        こんにちは。 ワイの正規表現入門 - Qiita の記事を見ていた時に、 「大正・昭和・平成・令和だけをOKにしたいんや」 を表現する正規表現は、 ^大正|昭和|平成|令和$ でなく、 ^(大正|昭和|平成|令和)$ という話がありました。恥ずかしながらすっかり認識が抜け落ちていました。 これはテストをすり抜ける気がしますし、レビューでも見つけられる気がしません。 そこで、正規表現可視化ツールRegulexの出番です! (正規表現は、よく使う正規表現はもうググりたくない! - QiitaのインタネットURLを使用しています) Regulexの使い方 上のテキストボックスに正規表現を入力すると、 下に入力した正規表現を可視化した図を表示してくれます。素敵すぎる。 うまく表示されないな、と思ったらVisualizeボタンを押してください。どこでエラーが起こっているかわかります。 ^大正|昭和|

                                                                          正規表現の可視化ツールRegulexを使おう! - Qiita
                                                                        • GitHub - pemistahl/grex-js: A JavaScript / WebAssembly library for generating regular expressions from user-provided test cases

                                                                          grex is a library that is meant to simplify the often complicated and tedious task of creating regular expressions. It does so by automatically generating a single regular expression from user-provided test cases. The resulting expression is guaranteed to match the test cases which it was generated from. This project has started as a Rust port of the JavaScript tool regexgen written by Devon Govet

                                                                            GitHub - pemistahl/grex-js: A JavaScript / WebAssembly library for generating regular expressions from user-provided test cases
                                                                          • Pike VMとEarley法の関係についてRubyで実装して考えてみる | makenowjust-labs/blog

                                                                            正規表現マッチングの実装手法の1つとしてPike VMと呼ばれるものがあります。 これはGo言語の正規表現実装やRustのregex crateで使われている手法であり、正規表現rrrと入力文字列wwwに対してO(∣r∣×∣w∣)O(|r| \times |w|)O(∣r∣×∣w∣)の計算量でマッチングができるのが特徴です。 Earley法はJay Earleyの提案した文脈自由文法 (CFG) の構文解析手法の1つです。 すべてのCFGを構文解析できる手法で最悪計算量はO(∣w∣3)O({|w|}^3)O(∣w∣3)ですが、無曖昧であればO(∣w∣2)O({|w|}^2)O(∣w∣2)で、決定的であればO(∣w∣)O({|w|})O(∣w∣)で構文解析ができます。 実装してみると分かりますが、Pike VMとEarley法には類似している点があり、Earley法をPike VMの発展系の

                                                                              Pike VMとEarley法の関係についてRubyで実装して考えてみる | makenowjust-labs/blog
                                                                            • 正規表現:文字列を「含まない」否定の表現まとめ | WWWクリエイターズ

                                                                              「〜を含まない」といった、否定の意味を持つ正規表現を記述する場合、下記のように、大きく分けて2種類のケースがあります。 「特定の1文字を含まない」といった否定表現か、もしくは「正規表現パターンを含まない」といった表現かで、大きく解決の方針が異なる点に注意して下さい。 特定の1文字だけを否定したい場合は非常にシンプルです。この場合、「文字クラス」、もしくはエスケープシーケンスで表される文字型を利用する事で表現できます。 一方で、特定の正規表現パターンを否定したい場合、少し記述が複雑になります。今回は「否定先読み」を利用した表現を、この記事の後半にご紹介します。 基本的な正規表現の記法はこの記事では触れませんので、不安な方はこちらの記事も合わせてご参照下さい: 正規表現とは?基本構文とメタ文字一覧(サンプル付) それでは、順番に詳しく見ていきます。 任意の一文字を含まない文字列の正規表現 a「

                                                                              • AI-Powered Regex Solver

                                                                                Insert your text and drag the cursor to highlight multiple strings to find matching regular expression. You can also click on the highlighted text to remove it.

                                                                                • Regular expressions in JavaScript

                                                                                  Regular expressions can be daunting, but they don't have to be! Learn everything you need about regular expressions and how to use them in JavaScript. The string is arguably the most essential data type in programming; every programming language and software in the world uses strings in one way or another. It enables humans to easily communicate with sophisticated programs and machines. One thing

                                                                                    Regular expressions in JavaScript

                                                                                  新着記事