タグ

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

  • 正規表現ミスって一晩誰もサービスにログインできなくしてしまった話 - Qiita

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

    正規表現ミスって一晩誰もサービスにログインできなくしてしまった話 - Qiita
    asiamoth
    asiamoth 2023/12/13
    そんなところで正規表現使うな高校校歌~♫ と思ったらAWSの仕様なのか。自分なら再発防止で簡単なチェック・スクリプトを書くか、毎回正規表現チェック用サイトで確認するかな。
  • Vimの検索の正規表現モードを切り替える

    ↑ こちらのmonaqaさんの記事で紹介されていたmodesearch.vimのアイデアに感銘を受け、いまならsetcmdline()を使えるのではないかと思い、作ってみました。 function! s:toggle_magic_search() abort if getcmdtype() !~ '[/?]' return '' endif let query = getcmdline() let pos = getcmdpos() if query[:1] ==# '\v' " \v -> \V let query = '\V' .. query[2:] elseif query[:1] ==# '\V' " \V -> \v let query = '\v' .. query[2:] else " add \v let query = '\v' .. query let pos +=

    Vimの検索の正規表現モードを切り替える
    asiamoth
    asiamoth 2022/12/13
    これメチャクチャ便利! むしろ、なぜ標準でこうなっていないのか、と思うほど手になじむ。
  • 第2回 Pythonの脆弱性 ~ReDOS~ | gihyo.jp

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

    第2回 Pythonの脆弱性 ~ReDOS~ | gihyo.jp
    asiamoth
    asiamoth 2022/11/21
    ReDOSの話題って、毎回毎回「正規表現が必要ない箇所に正規表現を使うな」で済むよね。今回は まだ正規表現でゴリ押ししてて苦笑。たとえばカンマをsplitすれば良いだけでは。
  • iOS端末のユーザーエージェントの判別コードは多分これが一番短いと思います(35文字) - Qiita

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

    iOS端末のユーザーエージェントの判別コードは多分これが一番短いと思います(35文字) - Qiita
    asiamoth
    asiamoth 2017/10/12
    `(o|d)` => `[od]` の方がベターですね。(でもまあ、こんな部分でコード・ゴルフするくらいだったら、正確で読みやすいコードを残した方が将来困らなさそうだなぁ……)
  • MYSQLの正規表現による置換について <dammy>○○</dammy> という値を <dammy>××</dammy> に変換したいと考えています。…

    MYSQLの正規表現による置換について <dammy>○○</dammy> という値を <dammy>××</dammy> に変換したいと考えています。 ○○のなかには、どんな値が入っているか分かりません。 正規表現を使えば、置換できると思うのですが、 MYSQLでのSQLを教えてください。

    asiamoth
    asiamoth 2011/07/23
    MySQL は、正規表現で検索はできても置換ができない。Movable Type 使いなので、なんとなく察していた。 この解答では PHP による置換の例を示している。もっと複雑なことに応用できそう。
  • Six Apart - Movable Type Regexプラグイン

    GitHubと一緒に使えます ディレクトリの面倒な管理は不要です。登録時に GitHub と連携させることで、自動的に情報を更新することができます。手軽に多くのユーザーへ告知することができます。 公認で良いモノを集めました 検索してもなかなか良いツールが見つからずに困ったことがありませんか?ディレクトリでは Six Apart が公認する高品質のプラグインとテーマだけ集めました。 インスピレーションの宝庫 Movable Type を拡張する様々なツールをみることで、新しいアイデアが生まれることがであります。「MTってこんなことも出来るんだ」という驚きを見つけてください。

    asiamoth
    asiamoth 2008/01/20
    けっきょく、こういう「Perlのパワーをそのまま使う」系が強いよね。
  • Perlの正規表現を用いた置換 - builder by ZDNet Japan

    注目急上昇中のDaaS最新情報 コロナ禍を背景に利用者と機能を拡大中 Azure Virtual Desktop最新情報 MSセキュリティ担当者が紹介 マルチクラウド環境の保護を追求する Microsoft Defender for Cloud 新OSのWin11はどう進化したか ビジネス上の役割、開発の要因と Win11が目指した5つのポイントを紹介 年間5,000件の問い合わせに対応 疑問を解消したいユーザーも答える情シスも みんな幸せになるヘルプデスクの最適解 これからの社内DX 真のDXのため、まずは社内のデジタル化を DXのファーストステップのヒント オープンソース活用はあたりまえ! そんな今だからこそ改めて考える 企業ITにおけるOSS活用のメリットとリスク Summit 講演レポート公開! イノベーション志向経営からDX推進の覚悟 ブレインテックの可能性まで いま求められるI

    asiamoth
    asiamoth 2007/12/28
    基本なので、しっかり覚えておこう。
  • perl - 文字列ばらしはsplit //, $strで : 404 Blog Not Found

    2007年11月27日13:30 カテゴリLightweight Languages perl - 文字列ばらしはsplit //, $strで うーん、ここがあきまへん。 [を] 転置インデックスによる検索システムを作ってみよう! 9 my @char = ($c =~ /([\x00-\x7f]|[\xC0-\xDF][\x80-\xBF]| 10 [\xE0-\xEF][\x80-\xBF]{2}| 11 [\xF0-\xF7][\x80-\xBF]{3})/gsx); 文字列をばらして(utf8の)文字一つ一つの配列にするには、バイト列に正規表現をかますのではなく、utf8文字列にしてからそれにsplit //をかますのが一番です。単にわかりやすいだけではなく、その方がずっと高速です。以下、Benchmark。 #!/usr/local/bin/perl use strict; u

    perl - 文字列ばらしはsplit //, $strで : 404 Blog Not Found
    asiamoth
    asiamoth 2007/11/27
    @chars = split //, $str;”という慣用句があるのか。覚えておこう。
  • AJAX Reguler EXpression eValuator

    EnglishBulgarian

    asiamoth
    asiamoth 2007/11/27
    オンラインで正規表現のチェックができる。
  • 404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン

    2007年10月30日20:00 カテゴリLightweight Languages perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン 久々の勝手に添削。今回はこちら。 40行で作るPerl用テンプレートエンジン 正規表現がらみなので、Perl以外でも有用。 添削箇所は、こちら。 40行で作るPerl用テンプレートエンジン sub convert { return unless defined(my $str = shift); $str =~ s{&amp;}{&amp;}gso; $str =~ s{<}{&lt;}gso; $str =~ s{>}{&gt;}gso; $str =~ s{\"}{&quot;}gso; $str; } これの最初のsubstitutionが&amp;ではなくて&ではないかというのはさておき、こういった場合、何度も正規表現をかけ

    404 Blog Not Found:perl - 勝手に添削 - 40行で作るPerl用テンプレートエンジン
    asiamoth
    asiamoth 2007/11/03
    ハッシュとのコンボが正当派っぽい。──のだけど、いくつものパターンをよく思いつくな……。すごい。
  • MTIf タグの like 属性について

    MTIf タグ(MTUnless タグ)の like 属性について、利用方法を紹介します。 この内容は、先日行われた「WebSig24/7 MT4分科会 第1回イベント『WebSig24/7 2007年秋 MT4の日』」で頂いたご質問、 like 属性に or 演算子のようなものは使えますか? like 属性を使って、title 要素に表示するデータを収集したいのですが? の回答です。ご返事が遅くなりましたこと、この場をお借りしてお詫びいたします。 1.like 属性の機能 MTSetVar タグに設定された変数、または MTSetVarBlock, MTSetVarTemplate ブロックタグの変数値が、like 属性に記述された文字列とマッチする場合に実行します。 また、属性値には perl の正規表現を使うことができます(厳密には、属性値は正規表現としてしか扱われません)。 2.ソ

    MTIf タグの like 属性について
    asiamoth
    asiamoth 2007/10/27
    お、like属性は正規表現で分岐できるのか! いろいろ使えそう。
  • PHP&正規表現 - phpspot

    PHPでよく使われる正規表現をまとめました。 逆引きでサンプル集としてコピーして使うことができます。 番プロダクトの利用に関しては利用に際してチェックを行って下さい。 正規表現がまだよく分からないという方も学習用途にどうぞ!

    asiamoth
    asiamoth 2007/09/16
    自分で考えるより間違いがない(だろう)。URLやメアドの正規表現。
  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    asiamoth
    asiamoth 2007/09/14
    これは面白そう! 正規表現の勉強にもなる!
  • Regular Expression Library

    Welcome to RegExLib.com, the Internet's first Regular Expression Library. Currently we have indexed 4149 expressions from 2818 contributors around the world. We hope you'll find this site useful and come back whenever you need help writing an expression, you're looking for an expression for a particular task, or are ready to contribute new expressions you’ve just figured out. Thanks! Add Regex

    asiamoth
    asiamoth 2007/08/26
    様々な正規表現のパターンを検索できるサイト。
  • Regex Tester – RegexPal

    RegexPal is a tool to learn, build, & test Regular Expressions (RegEx / RegExp). Results update in real-time as you type. Roll over a match or expression for details. Save & share expressions with others. Explore the Library for help & examples. Undo & Redo with {{getCtrlKey()}}-Z / Y. Search for & rate Community patterns.

    asiamoth
    asiamoth 2007/08/16
    ブラウザ上で正規表現のチェックが行える。便利!
  • IfMatchEntry | Junnama Online

    <MTIfMatchEntry search="Movable Type" item="text"> entry_text(MTEntryBody)に"Movable Type"を含む場合 <MTElse> entry_text(MTEntryBody)に"Movable Type"を含まない場合 </MTElse> </MTIfMatchEntry> 属性値itemに指定できるのは title, text, text_more, excerpt, keywords, basename。 item="all" とするとこれらすべてを検索対象とします。 上述の例のようにコメントタグにマッチさせたい場合は「<」や「>」をエスケープしてください。また、正規表現で検索しているので、search="(Movable Type|MT)" とすると、"Movable Type" または "MT" にマッ

    IfMatchEntry | Junnama Online
    asiamoth
    asiamoth 2007/07/15
    「エントリーに含まれる文字列とか正規表現でテンプレートの処理を分岐させる条件タグ。」
  • IfMatchEntryプラグイン(MT)。 | Junnama Online

    Regexプラグインで出来るわけなのですが...難しいよ。 Regexプラグイン ということで、これ。 IfMatchEntry.pl.zip(766byte) <MTIfMatchEntry search="&lt;!--flag--&gt;" item="excerpt"> とか。 <MTIfMatchEntry search="(MovableType|MT)" item="all"> とか、ね。 追記: もうちょっと丁寧に書こう... <MTIfMatchEntry search="MovableType" item="text"> entry_text(MTEntryBody)に"MovableType"を含む場合 <MTElse> entry_text(MTEntryBody)に"MovableType"を含まない場合 </MTElse> </MTIfMatchEntry> 属

    IfMatchEntryプラグイン(MT)。 | Junnama Online
    asiamoth
    asiamoth 2007/04/22
    記事本文やタイトル内で、正規表現にマッチした場合に処理を行うMTプラグイン。
  • 404 Blog Not Found:perl - Regexp::Assembleのススメ

    2007年04月19日15:00 カテゴリLightweight Languages perl - Regexp::Assembleのススメ というわけで、Regexp::Assembleのご紹介。 PERL HACKS(日語版) [英語版] odz buffer - それ Regexp::Assembleん?ループ云々を抜きにして、こういうのは Regexp::Assemble の出番じゃないの? すでにPerl Hackers御用達のモジュールとなっていますが、まだ知らない方もいらっしゃるかも知れないので。 何をするモジュールか、といえば、以下を見れば一目瞭然でしょう。 Regexp::Assemble - Assemble multiple Regular Expressions into a single RE - search.cpan.org use Regexp::Asse

    404 Blog Not Found:perl - Regexp::Assembleのススメ
    asiamoth
    asiamoth 2007/04/20
    超絶便利な正規表現高速化(最適化?)モジュール、らしい。
  • Emacs で正規表現を使うなら re-builder を使おう - higepon blog

    Emacs で正規表現を使うならば re-builder を使うことをおすすめします。 例えば、正規表現を良く使うシチュエーションとして置換があります。 M-x replace-regexpで置換対象文字列を正規表現で指定し、何に置換して欲しいかを指定するわけです。 行頭に // を追加してソースをコメントアウトしたいのであれば M-x replace-regexp Replace regexp: ^ ← ^ を入力 Replace regexp ^ with: // ← // を入力のように置換をします。(この場合は、comment-region が最適解ですが) 例に挙げたような簡単な正規表現であれば、間違いようもなく問題ないのですが、ちょっと複雑な置換になると話は変わります。 以下のようなコードがあるとしましょう。 byte* buf = new byte[32]; unsigned

    Emacs で正規表現を使うなら re-builder を使おう - higepon blog
    asiamoth
    asiamoth 2007/02/18
    知ってたけど使ってなかった……。Xyzzy版: http://ohkubo.s53.xrea.com/xyzzy/#re-builder
  • http://youmos.com/tech/regular_expression_book.html

    asiamoth
    asiamoth 2006/11/30
    なるほど! 「<.*?>」は「<[^>]*>」の代わりに使えるかな?