並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 169件

新着順 人気順

正規表現の検索結果1 - 40 件 / 169件

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

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

      心のバリアを取り去って「正規表現」に取り組む一歩を踏み出すためのメモ|DTP Transit 別館
    • ChatGPTのヤバさは、論理処理が必要と思ったことが確率処理でできるとわかったこと - きしだのHatena

      ChatGPTのヤバいところは、論理処理が必要だと思っていたことが、じつは多数のデータを学習させた確率処理で解決可能だと示したことだと思います。 たとえば、このように正規表現にマッチする文字列を生成するには、特別に専用の論理処理が必要だと思っていました。 前のブログのときには特殊処理が必要だと考えてましたね。 ウソはウソと見抜ける人じゃないとChatGPTを使うのは難しい - きしだのHatena けど、123_45678world.mdはマッチするのにマッチしないと言っているので、そのような誤りが入ることを考えると、どうも確率処理だけでやっているようです。 考えてみると、3層以上のニューラルネットであれば論理素子を再現できるので、ディープラーニングで論理処理を模倣することは可能なんですよね。 バックプロパゲーションでニューラルネットの学習 - きしだのHatena そもそも論理は、多数の

        ChatGPTのヤバさは、論理処理が必要と思ったことが確率処理でできるとわかったこと - きしだのHatena
      • 正規表現の先読み・後読み

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

          正規表現の先読み・後読み
        • 【個人開発】正規表現を学ぶ狩りに出ませんか?モンスターを倒しながら正規表現が学べるゲーム「Regex Hunting」を作りました - Qiita

          【個人開発】正規表現を学ぶ狩りに出ませんか?モンスターを倒しながら正規表現が学べるゲーム「Regex Hunting」を作りましたRubyRails正規表現TypeScriptReact はじめに はじめまして! 個人開発者のハガユウキと申します。 突然ですが、皆さん正規表現はお好きですか? 私は好きです。「複数の文字列を一つのパターンで表現できる」部分にすごく面白味を感じています。 もっといろんな方に正規表現を知っていただきたい、好きになってほしいと思っています。 しかし、現状では2つの課題があると感じています。 正規表現の勉強自体がそもそも面白くない。 正規表現を勉強しても、しばらく使わないと忘れる。 この2つの課題を突破できるサービスは、現状存在しません。 そのため、楽しみながら正規表現を学べるサービスがあれば良いなと思いました。 作りました。 ▼スライド型正規表現学習ゲーム【Reg

            【個人開発】正規表現を学ぶ狩りに出ませんか?モンスターを倒しながら正規表現が学べるゲーム「Regex Hunting」を作りました - Qiita
          • 正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話

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

              正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話
            • Python自然言語処理テクニック集【基礎編】

              自分がよく使用する日本語自然言語処理のテンプレをまとめたものです。 主に自分でコピペして使う用にまとめたものですが、みなさんのお役に立てれば幸いです。 環境はPython3系、Google Colaboratory(Ubuntu)で動作確認しています。 Pythonの標準機能とpipで容易にインストールできるライブラリに限定しています。 機械学習、ディープラーニングは出てきません!テキストデータの前処理が中心です。 前処理系 大文字小文字 日本語のテキストにも英語が出てくることはあるので。 s = "Youmou" print(s.upper()) # YOUMOU print(s.lower()) # youmou 全角半角 日本語だとこちらのほうが大事。 全角半角変換のライブラリはいくつかありますが、自分はjaconv派。 MIT Licenseで利用可能です。 import jaco

              • 【サボりたいエンジニア向け】コーディングに役立つチートシートまとめ - Qiita

                はじめに こんな人が役に立つ記事 コーディング業務の効率を上げたい。 コーディングに関するチートシートを知りたい。 打つのもめんどいからコピペでなんとかしたい(笑) 今回は、コーディングに役立つチートシートをまとめました。 VSCODEチートシート エンジニアなら必ず使うであろうVsCodeのショートカットチートシート。これはよく使ってます! HTML系のチートシート集 HTMLに関するチートシートをまとめてみました。 HTML5 タグチートシート HTML5 のタグチートシート。サイトには 5 から廃止になった避けるべきタグなどもまとめてられており、 PDFでダウンロードできます。 HTML5 入れ子チートシート HTML の入れ子の可否を視覚的に分かりやすく、色づけしてくれます。対象要素の親、子を選ぶだけで、簡単に調べることが出来ますので便利なチートシート 特殊文字一覧:HTMLで使え

                  【サボりたいエンジニア向け】コーディングに役立つチートシートまとめ - Qiita
                • 正規表現の脆弱性 (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. はじめに この記事はNuco Advent Calendar 2022の12日目の記事です。 1-1. 対象者 この記事は ・正規表現に触れたことがあるけど、結局なんだったのかわかっていない ・正規表現の考え方にイマイチ慣れない ・正規表現って美味しいんですか? というような正規表現初心者の方に向けて書いています。 1-2. この記事を読むメリット 大きなメリットとしては「正規表現の考え方」を身につけることができるはずです。 また記事の最後では正規表現のサンプル集、参考記事および練習サイトを紹介しています。 足りない知識をカバーし実際に手を動かすことで身についていくので、この記事と合わせて参考記事を読んだり練習問題にチャレンジしてみてください。 2. 導入知識 2-1. 正規表現のメリット 具体的な話に入る前に、正規表現を使えばどのようなことができるのか紹介します。 正規表現を用いれ

                      正規表現入門決定版 - Qiita
                    • ハイフンに似ている横棒を全て統一するᅳㅡ˗𐆑–᭸‒-─−▬𐄐—━‐‑ー﹣―ー﹘-⁃➖⁻! - Qiita

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

                        ハイフンに似ている横棒を全て統一するᅳㅡ˗𐆑–᭸‒-─−▬𐄐—━‐‑ー﹣―ー﹘-⁃➖⁻! - Qiita
                      • サクラエディタでよく使う正規表現たち【備忘録】 - Qiita

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

                          サクラエディタでよく使う正規表現たち【備忘録】 - Qiita
                        • 君はメールアドレスの正規表現を適当にググって使っていないか?

                          /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/ だ。いいね? なぜこの正規表現がいいのか ちなみにこれの何がいいかというと 「HTMLの標準仕様を定めるWHATWGの正規表現をそのまま使っている」ところ。 つまり、各ブラウザのデフォルトの<input type="email" />のバリデーションと一致するという大きなメリットを得られる。 これはMDNにも載っている列記とした「実用的な」正規表現だ。 ちなみにRFCオタクがRFC準拠のおおよそ実用に耐えないであろうメールアドレスの正規表現を推してくるかもしれないが無視して良い。 例えば、RFCに準拠している以下のようなメ

                            君はメールアドレスの正規表現を適当にググって使っていないか?
                          • シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita

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

                              シンプル図解: 正規表現の (?= ) とか (?! ) とか (?<= ) とか (?<! ) とか - Qiita
                            • 「正規表現一覧表がパクられた」――DeNAのRPAサービスで個人ブログからの無断転載が発覚 取り下げに

                              「自分のサイトの正規表現一覧表がパクられた」──DeNAが運営するWebサイト内で、自分が作成した表が無断転載されているというツイートが物議を醸している。投稿者で、個人でWebサイトを運営するむらしゅん(@murashun)さんは10月30日、DeNAのRPAサービス「Coopel」で、自身のブログで掲載した図表と全く同じものが掲載されているのを見つけたという。 ツイートされた画像には、むらしゅんさんが作成したという正規表現一覧表と、同じ文言や順番で説明していることや、具体例については一部をCoopelに置き換えて表現していることが確認できる。むらしゅんさんの運営するWebサイトには、同サイト内の著作権について説明するページに設けており、転載許可については別途問い合わせをするよう提示していた。

                                「正規表現一覧表がパクられた」――DeNAのRPAサービスで個人ブログからの無断転載が発覚 取り下げに
                              • 覚えれば一生もの! ウェブエンジニアのための正規表現活用入門 - ICS MEDIA

                                正規表現は文字列の検索や置換を行うための強力で便利なツールです。基本をマスターすれば開発から日常の事務作業までさまざまな場面でラクをできる魔法の道具ですが、見た目がちょっと分かりづらいので、避けている方もいるのではないでしょうか? 筆者の個人的観測ですが、とりわけフロントエンドのエンジニアには正規表現に苦手意識を感じている方が多いようです。 この記事では正規表現の基本と、正規表現がどこで使えてどれだけ便利になるのかを紹介します。 正規表現の基本:正規表現ってそもそも何? 正規表現(regular expression)は、ごく簡単にいえば「さまざまな文字列のバリエーションをひとつの文字列で表現したもの」です。たとえば、郵便番号の7桁の数字には(実際に使われていないものも含めれば)一千万通りのバリエーションがありますが、正規表現を使えば次のようにひとつの文字列で表現できます。 ▼「7桁の数字

                                  覚えれば一生もの! ウェブエンジニアのための正規表現活用入門 - ICS MEDIA
                                • AI Programmer

                                  日本語で指示を出すだけでコードを 自動で生成してくれます。 AI Programmer エンジニアを強力にサポートします。現在プロトタイプを無料で公開しています。AI プログラマーに指示を出してソースコードを生成してみてください。できるだけ具体的に指示を出すと期待通りのコードが書けます。

                                  • 「正規表現ぐらい覚えてないの?」と言われ痛感したレベルの差 脳内でプログラミングを完結させる天才プログラマー | ログミーBusiness

                                    「シリエン戦隊JUN TV」は、現役エンジニアである酒井潤氏がシリコンバレーにおける、働き方やキャリアなどの情報を届けるチャンネルです。今回は、酒井氏が今まで一緒に働いてきた中で出会った天才プログラマー3人について。全2回。後半は、酒井氏がレベルの差を痛感した韓国人天才プログラマーについて。 「正規表現ぐらい覚えてないの?」と言い放った天才酒井潤氏:3人目は韓国の方で、その方もやはり異常にプログラムができました。 昔、「OpenFlow」というネットワーク関係のルーティングを処理するプロジェクトがあって、その時に私も彼と一緒にPythonを使ってネットワークのルーティング系統の部分のプログラムを書いていました。 ネットワーク関係のプログラムを書く時は、RFCやIEEEとか、プロトコルにしろネットワークのやり方にしろ、世界で決められた標準がドキュメントのかたちになってWebに上がっているんで

                                      「正規表現ぐらい覚えてないの?」と言われ痛感したレベルの差 脳内でプログラミングを完結させる天才プログラマー | ログミーBusiness
                                    • Log4jで話題になったWAFの回避/難読化とは何か

                                      はじめに 2021年12月に発見されたLog4jのCVE-2021-44228は、稀に見るレベル、まさに超弩級の脆弱性となっています。今回、私はTwitterを主な足がかりとして情報収集を行いましたが、(英語・日本語どちらにおいても)かなりWAFそのものが話題になっていることに驚きました。ある人は「WAFが早速対応してくれたから安心だ!」と叫び、別の人は「WAFを回避できる難読化の方法が見つかった。WAFは役に立たない!」と主張する。さらにはGitHubに「WAFを回避できるペイロード(攻撃文字列)一覧」がアップロードされ、それについて「Scutumではこのパターンも止まりますか?」と問い合わせが来るなど、かなりWAFでの防御とその回避方法について注目が集まりました。 実はWAFにおいては、「回避(EvasionあるいはBypass)」との戦いは永遠のテーマです。これは今回Log4jの件で

                                        Log4jで話題になったWAFの回避/難読化とは何か
                                      • 東京都 新たに9人コロナ感染確認 10人下回るのは3月22日以来 | NHKニュース

                                        東京都は15日、都内で新たに9人が新型コロナウイルスに感染していることを確認したと発表しました。また14日の都内の「陽性率」は暫定値で3.7%でした。 都内の1日の感染者が10人を下回るのは、ことし3月22日以来で、先月7日に緊急事態宣言が出されてからは初めてです。また、15日までの13日連続で100人を下回りました。 9人のうち、3人はこれまでに感染が確認された人の濃厚接触者で、6人は今のところ感染経路がわかっていないということです。 これで都内で感染が確認された人は、合わせて5036人になりました。また、都が独自の方法で算出した14日の「陽性率」は暫定値で3.7%でした。 一方、都はこれまでに新型コロナウイルスへの感染が確認された7人が死亡したことを明らかにしました。 都によりますとこのうち6人は60代から80代の男女で、残る1人は家族の同意が得られないとして年代や性別を公表していませ

                                          東京都 新たに9人コロナ感染確認 10人下回るのは3月22日以来 | NHKニュース
                                        • スラッシュの有無だけでセキュリティにとんでもない大穴が空いてしまうNginxのありがちな設定ミスについて実例を踏まえて専門家が解説

                                          多機能なウェブサーバーとして2004年に登場したNginxは、2023年6月時点では業界トップシェアとなるほど人気を集めるサーバーです。そんなNginxの設定において、スラッシュを一つ付けるか付けないかの差で大きなセキュリティホールができてしまう問題について、大手パスワードマネージャーやGoogle製のツールの例をとりあげてセキュリティアナリストのダニエル・マツモトさんがブログで解説しています。 Hunting for Nginx Alias Traversals in the wild https://labs.hakaioffsec.com/nginx-alias-traversal/ Nginxの設定には、特定のURLへのアクセスをどう処理するべきかを記述できる「location」というディレクティブが存在しており、URLをサーバー内のファイルに対応させるのによく利用されています。例

                                            スラッシュの有無だけでセキュリティにとんでもない大穴が空いてしまうNginxのありがちな設定ミスについて実例を踏まえて専門家が解説
                                          • VSCodeのGitHubリポジトリに対する不正なPushアクセス

                                            はじめにMicrosoftは脆弱性の診断行為をセーフハーバーにより許可しています。 本記事は、そのセーフハーバーを遵守した上で発見/報告した脆弱性を解説したものであり、無許可の脆弱性診断行為を推奨する事を意図したものではありません。 Microsoftが運営/提供するサービスに脆弱性を発見した場合は、Microsoft Bug Bounty Programへ報告してください。 要約VSCodeのIssue管理機能に脆弱性が存在し、不適切な正規表現、認証の欠如、コマンドインジェクションを組み合わせることによりVSCodeのGitHubリポジトリに対する不正な書き込みが可能だった。 発見のきっかけ電車に乗っている際にふと思い立ってmicrosoft/vscodeを眺めていた所、CI用のスクリプトが別のリポジトリ(microsoft/vscode-github-triage-actions)にま

                                              VSCodeのGitHubリポジトリに対する不正なPushアクセス
                                            • えっちな grep をつくった - はやくプログラムになりたい

                                              H(uman-friendly) な grep コマンド hgrep をつくりました. github.com '\w+ で検索した時の出力 ファイルを特定のパターンで検索し,マッチした箇所を構文ハイライトしたコード片で表示します.超ざっくり言うと,ripgrep で検索して bat でマッチ箇所付近を表示するような感じです. grep -C によるコンテキスト表示に似ていますが,マッチ行が近い時は1つのコード片にまとめる,周囲何行を表示するかをヒューリスティックに少し賢く決めているなど,ちょっと出力は工夫しています. 動機 手元のリポジトリでコードを検索する時は 単純に grep で検索してマッチ結果を眺める grep | fzf のように検索結果を fzf で絞り込んだりプレビューする vim $(grep -l ...) のように検索結果をエディタで開く あたりを使い分けているのですが

                                                えっちな grep をつくった - はやくプログラムになりたい
                                              • アイヌ語仮名「ㇷ゚」に対する正規表現の罠

                                                導入 アイヌ語は日本語と異なり、閉音節(子音で終わる音節)も存在するので、表記の際音素文字であるラテン文字なら、そのまま 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

                                                  アイヌ語仮名「ㇷ゚」に対する正規表現の罠
                                                • Rustで真に安全なプログラムを書く方法 - かとじゅんの技術日誌

                                                  この記事はRust Advent Calendar 2021の12/8日の記事です。 Rust前提の記事として書きましたが、他の言語にも適用できる考え方なので、ほかの言語勢の方々もよければお付き合い下さい。 今回のテーマは「Rustで真に安全なプログラムを書く方法」についてです。 「真に安全なプログラム」の定義は以下とします。 挙動が安定し、結果が予測可能となる 正しさの基準に基づき、プログラムの間違いを検知することができる 「真に」とはドメイン知識に基づく正しさという意味です。詳しくは後述します。 それと「そもそもRustで実装されるプログラムは安全じゃないのか」という想定質問については「メモリの操作は安全。だが、それだけでは真に安全なプログラムにはならない」が答えになります。これについて興味がある方、ぜひ最後までお付き合いください。 「真に安全なプログラム」を実現するレシピとしては「関

                                                    Rustで真に安全なプログラムを書く方法 - かとじゅんの技術日誌
                                                  • 正規表現を使ってモンスターを討伐していくゲーム「Regex Hunting」をプレイしてみた

                                                    さまざまな要素を含む文字列を1つの文字列で表現できる「正規表現」を、楽しみながら学んでいけるゲーム「Regex Hunting」が登場したので、実際にプレイしてみました。 Regex Hunting https://www.regex-hunting.com/ サイトにアクセスしたら「Start」をクリック。 するとサイト下部へとスクロールし、3種類のクエストが表示されます。まずは初級編の「スタート」をクリック。 ゲーム開始前に、正規表現の説明をスライドで確認できるので、右下の三角アイコンをクリックするか、カーソルの右キーを押します。 説明の一例が「文字クラス」。[acz#]と表記すると「a」「c」「z」「#」のいずれか1文字にマッチします。アルファベットが連続しているようであれば[a-z]とすれば小文字のaからzまで、[B-X]なら大文字のBからXまでにマッチする、という風に、正規表現初

                                                      正規表現を使ってモンスターを討伐していくゲーム「Regex Hunting」をプレイしてみた
                                                    • 君たちは正規表現におけるインド数字の罠にハマったことはあるかい?(١٢٣٤٥٦٧٨٩) - 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
                                                      • 正規表現でガチャを回せる投稿サイトを作った話

                                                        (映像もつくりました) 正規表現ガチャ(英語名:Regech)という、正規表現から生成されるランダムな文字列でガチャを引ける投稿サイトをNext.jsで個人開発した話です。 筆者について 今までPHPやjQueryで開発をしてきた19歳です。 制作期間は20日ほどです。 もしよければ、読んで・遊んでいってもらえたら嬉しいです! つくったもの 正規表現にマッチするランダムな文字列を生成するアプリです。 例:(にゃん?)+→にゃにゃんにゃんにゃ おもしろいガチャができたら投稿することでみんなで遊べるようになります。 ぜひ、おもしろいガチャを作って投稿してください! 正規表現の学習にもおすすめです。 英語対応もしてみたので英語環境からアクセスするか、/en/にアクセスすると英語でも見れます。 私のおすすめガチャ 私のおすすめです。他にもおもしろいガチャが投稿されているので遊んでみてください! リ

                                                          正規表現でガチャを回せる投稿サイトを作った話
                                                        • 「バグを意図的にバグのまま残す」という選択肢がある

                                                          はじめに gcc v12.1において、C++の正規表現ライブラリstd::regexに、正規表現のバリデーションを改善するパッチ(以下"改善パッチ"と表記)が取り込まれました。改善パッチによって、これまではバリデーションにひっかからなかった不正な正規表現文字列が"正しく"不正なものと認識されて例外が発生するようになりました。 これだけ聞けばいいことだけのように思えるかもしれませんが、実はそうでもなかったりします。経験豊富なかたであれば見た瞬間ゾッとしたかもしれません。本記事では、この一見問題なさそうな改善パッチによって発生しうる問題、および、その具体的例について紹介するとともに、この手のパッチを当てるかどうかは難しい判断になるという知見を共有します。 結論 改善パッチによって発生する問題 発生条件 gcc v12.1以降、あるいは改善パッチをバックポートされた任意のバージョンを使ってC++

                                                            「バグを意図的にバグのまま残す」という選択肢がある
                                                          • RegEx Crossword

                                                            It's a crossword puzzle where you need to fill in the hexes with character sequences, so that they match the regular expressions listed around the edges. The individual clues will turn bold purplebold green when satisfied, orangered when not, and underlined when active. Note that the regex must be a full match, and empty cells are treated as spaces. Double click a rule to edit it. When finished, p

                                                            • 全年齢向け同人誌をネット販売しようとしたら「ロリ」という文字列が含まれているので販売出来ないと怒られた話→「ツナ缶のいかかがわしい本…」「カロリーwww」

                                                              長井ずみ @zumix30contacts 警告の本は既に完売しましたが、冬コミ新刊のツナ缶いかがわしいブックや、168pに及ぶエクストリームなツナ缶ブックなどを通販中です (画像はvol8、7、6、エクストリームのサンプル) zumix.booth.pm 31日でクローズする予定なので、ツナ缶に食べたすぎる方は是非 #ad #stealthmarketing pic.twitter.com/z0lUIau1Ff 2023-01-30 11:55:48 長井ずみ @zumix30contacts 「どうしてこんな警告が?」について超簡単に説明すると ・BOOTHやfanboxが、日本関係ない海外のヤバい奴たちのヤバい商品(もちろん違法)の決済プラットフォームとして悪用された ・悪用抑制の為「ヤバい商品」の取り締まりを強化&規約改定 pixiv.net/info.php?id=88… 悪用す

                                                                全年齢向け同人誌をネット販売しようとしたら「ロリ」という文字列が含まれているので販売出来ないと怒られた話→「ツナ缶のいかかがわしい本…」「カロリーwww」
                                                              • 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にそのまま取り込むと表明。そのための互換レイヤを開発
                                                                • 正規表現ミスって一晩誰もサービスにログインできなくしてしまった話 - Qiita

                                                                  はじめに この記事は、本番環境などでやらかしちゃった人 Advent Calendar 2023の11日目です。 どうも、@_tinojiと申します。実に4年ぶりにアドベントカレンダーに参加しました。 正規表現で1文字消し忘れて、なんぴとたりともサービスにログインできない状態にしてしまったという話をします。正規表現にはまじで気をつけましょうという教訓になれば・・・ 犠牲となったログイン画面 とあるtoBなWebサービスを開発していたときの話です。法人のユーザーが使う管理画面的なイメージです。 当然ログイン機能があって、至って普通なログインなのですが1つだけ特徴がありまして、ログイン画面のURLをアカウントごとに変えています。https://example.com/<uuid>/loginみたいな感じですね。 あまり見ない形式ではありつつも、個別のUUIDを特定されない限りログイン画面に対し

                                                                    正規表現ミスって一晩誰もサービスにログインできなくしてしまった話 - Qiita
                                                                  • ReDoS 検出の最先端 recheck の紹介 / State of the Art of ReDoS Detection

                                                                    YAPC::Japan::Online 2022 での発表資料です。 recheck:

                                                                      ReDoS 検出の最先端 recheck の紹介 / State of the Art of ReDoS Detection
                                                                    • 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 を作りました - プログラムモグモグ
                                                                      • 正規表現でのURLのチェックとバイパス | 技術者ブログ | 三井物産セキュアディレクション株式会社

                                                                        最近はMBSDでWebアプリケーションスキャナの開発をしている寺田です。 Webアプリケーションを開発していると、セキュリティの観点でURLをチェックしなければならないことがしばしばあります。本日の記事では、そのようなURLのチェックを如何に行うか、正規表現を使う場合の注意点や、バイパス方法などについて書きたいと思います。 本記事で想定するのは、ブラウザからパラメータとして来るURLをチェックしてリダイレクトやリンクのURL等として使ったり、ブラウザから来たOriginヘッダ等のURLをチェックしてアクセス制御をするケースです。その中でも、以下のようにサブドメイン部分(★の部分)を可変にする状況を主に想定します。 https://★.example.jp/… よく使われてそうなチェック用の正規表現と、そのバイパスは以下のとおりです。 正規表現: ^https://.+\.example\.

                                                                          正規表現でのURLのチェックとバイパス | 技術者ブログ | 三井物産セキュアディレクション株式会社
                                                                        • 非公式 PHP 8.1のmbstringアップグレードガイド - てきとうなさいと。べぇたばん

                                                                          PHP 8.1へのアップグレードにまつわるまとめ PHP 8.1へのアップグレードには、mbstringにまつわるマニュアルに記述されない後方互換性のない変更が含まれることがあります。そのことを周知するべく、この記事を書くことにしました。 私てきめんは、PHPカンファレンス 2022にて、「治っていくmbstring 令和時代の文字化け」というタイトルでトークしています。以下スライドも参考にしてください。 Major overhaul of mbstringについて PHP 8.1から、Major overhaul of mbstringと呼ばれる、mbstringの大規模改修の内容が反映されるようになりました。困ったことに、RFC(Request For Comments)やChangelog、マニュアルにない内容で、mbstringを多用するPHPユーザーにとてつもない困惑をもたらすこ

                                                                            非公式 PHP 8.1のmbstringアップグレードガイド - てきとうなさいと。べぇたばん
                                                                          • Blog|その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法

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

                                                                              Blog|その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法
                                                                            • X(Twitter)のrobots.txtがおかしい(このミスはちょっと恥ずかしいかも)【SEO情報まとめ】 | 海外&国内SEO情報ウォッチ

                                                                              robots.txtでは正規表現は使えない――改めて技術を正しく理解したいと心から思うミスがX(Twitter)のサイトに見付かった。今回のピックアップでは、この件に加えて、複数サイトを管理している人向けの便利なrobots.txt管理術をお届けする。 もちろん、ほかにもSEO情報をしっかりまとめている。ローカルSEOのテクニックと基本情報、デスクトップ用Googlebot終了、著者情報とSEO、生成AIなどなど、今回もあなたのSEO力アップに役立つ情報をお届けする。 X(Twitter)のrobots.txtがおかしい(このミスはちょっと恥ずかしいかも)複数サイト管理者に朗報: robots.txtはリダイレクトでまとめて管理できるローカルSEOで上位表示するためのTIPS×8ローカルSEOスターターガイド(基本版)2024年6月のグーグル検索オフィスアワー: コピーコンテンツが正規UR

                                                                                X(Twitter)のrobots.txtがおかしい(このミスはちょっと恥ずかしいかも)【SEO情報まとめ】 | 海外&国内SEO情報ウォッチ
                                                                              • 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進数の足し算を計算する正規表現」の解説
                                                                                • 「7」の倍数を表す正規表現の解説 - Panda Noir

                                                                                  「7の倍数」を表す正規表現 #正規表現 - Qiita ↑この記事について、「2進数だったら現実的なサイズの正規表現で書けそう」と思ったので書いてみます おさらい: 7の倍数かを判定するオートマトン 7の倍数であるというのは、言い換えると 7で割ったときにあまりが0である ということです。これをもとに、ある数字を7で割ったときの余りを状態に持つオートマトンを考えます。このオートマトンは状態が0のときに受理状態になります(=7の倍数)。 このオートマトンの遷移には筆算の考え方が使えます。筆算ではまず一番上の桁をみて7で割り、そのあまりを10倍して次の桁での計算に利用していく、という流れです。それをもとにオートマトンを書いてみるとこんな感じになります。 12345 を 7で割ってみる オートマトンの状態に1 mod 7を格納 (状態: 1) 状態を10倍して、次の桁を足す (状態: 1*10

                                                                                    「7」の倍数を表す正規表現の解説 - Panda Noir

                                                                                  新着記事