タグ

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

  • nginx連載5回目: nginxの設定、その3 - locationディレクティブ

    locationディレクティブはパスの条件が評価されて選ばれたものが適応されます。この条件はパスの文字列の前方一致あるいは正規表現による評価です。この評価の順番は以下のようになります。 前方一致("=", "^~", プレフィックスなし)の条件の評価を実施 最も一致する条件を選ぶ。 選ばれた条件が、完全一致で、プレフィックスが"="であれば、そこで評価を終了し、そのlocationディレクティブを適応する。 選ばれた条件のプレフィックスが"^~"であれば、そこで評価を終了して、そのlocationディレクティブを適応する。 正規表現("~", "~*")の条件の評価を実施 正規表現の条件を設定ファイルに定義した順番に評価する。一致したら、そこで評価を終了して、そのlocationディレクティブを適応する。 前方一致の評価で選ばれた条件のlocationディレクティブを適応する。 ここで注意

    nginx連載5回目: nginxの設定、その3 - locationディレクティブ
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

    iww
    iww 2014/03/04
    『Rubyの正規表現機能は、デフォルトで複数行モードである』 どういう歴史・理由でこんな仕様になっちゃってんのか 興味ある。
  • perl で正規表現にマッチした文字列を配列に入れる方法 | perl/CGI | 阿部辰也のブログ――人生はひまつぶし。

    ある文字列から、正規表現にマッチした文字列のリストを、配列に入れる方法です。 意外と最近までこれ知らなかったです。 #-- 文字列 $string = '0a12bc345def6789ghij'; #-- 数字だけを抽出して配列に入れる @nums = $string =~ /[0-9]+/g; #-- 配列に入った値を出力 foreach $num (@nums){ print $num."\n"; } 上記の出力結果は、 0 12 345 6789 となるはずです。 Twitter始めました。Followはお気軽にどうぞ。 関連するブログ記事 perl / PHP / JavaScript 各言語での URL(URI)エンコード・デコード方法まとめ [2009年12月 2日 18:47] perlCGI や PHP でフォーム入力チェックによく使う正規表現のまとめ [2009年

  • JavaScript lastParen Property

  • RegExp - JavaScript | MDN

    標準組み込みオブジェクトRegExpコンストラクターRegExp() constructorプロパティRegExp[@@species]RegExp.prototype.dotAllRegExp.prototype.flagsRegExp.prototype.globalRegExp.prototype.hasIndicesRegExp.prototype.ignoreCaseRegExp.input ($_) 非推奨 RegExp: lastIndexRegExp.lastMatch ($&) 非推奨 RegExp.lastParen ($+) 非推奨 RegExp.leftContext ($`) 非推奨 RegExp.prototype.multilineRegExp.$1, …, RegExp.$9 非推奨 RegExp.rightContext ($') 非推奨 RegExp.p

    RegExp - JavaScript | MDN
  • 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found

    2009年03月19日18:00 カテゴリLightweight Languages 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ ああ、まただよ... かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜 正規表現って、プログラミング言語間の差が少ないサブ言語なのに、なぜ「PHP」がつくとダメ正規表現ばかり登場するのか。うんざりだ。 かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜メールアドレスは厳密にチェックしようとするとなかなか難しいのですが、簡単なチェックだったらこれでOKぽいですね。 /^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$

    「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found
  • myeclipseide.jp

    This domain may be for sale!

  • 2行に渡るメールヘッダの正しい処理

    問題発生 長いメールヘッダの規定 MIMEの規定 正しいメールヘッダ復元の実装 問題発生 ある方より、メール投稿利用時に長い日語タイトルを付けると、途中に半角スペースが入ってしまうというバグ報告を受けました。 Subject: =?ISO-2022-JP?B?GyRCPmFHKz5hRys+YUcrPmFHKz5hRys+YUcrPmFHKz5hGyhC?= =?ISO-2022-JP?B?GyRCRys+YUcrPmFHKz5hRys+YUcrPmFHKz5hRys+YUcrPmFHKz5hGyhC?= のようにMIMEエンコードが長くなり空白が入ったときに、この空白がデコードされてもそのまま残ってしまうことが原因です。やっつけならこの空白を除去するだけで良いのですが、やっつけプログラムは最低なのできちんと調査してみました。 長いメールヘッダの規定 RFC 2822「Internet

    2行に渡るメールヘッダの正しい処理
    iww
    iww 2012/10/15
    while(fgets())でやってるときには頭痛い
  • ケン・トンプソン - Wikipedia

    ケネス・レイン・トンプソン(Kenneth Lane Thompson、1943年2月4日 - )はコンピュータサイエンティストのパイオニアでアメリカ人。ハッカー仲間からはケン・トンプソン (Ken Thompson) と呼ばれている[1]。長年ベル研究所に勤め、オリジナルのUnixを開発した。またC言語の前身であるB言語を開発し、Plan 9の初期の開発者の1人だった。2006年からGoogleで勤務しており、Goを共同開発した。 他の主な業績として、正規表現、テキストエディタQEDとed、UTF-8コードの定義に加え、チェスの終盤定跡データベースやチェスマシンBelleの開発などコンピュータチェスへの貢献がある。1983年に彼の長年の同僚であるデニス・リッチーと共にチューリング賞を受賞した。 青少年時代[編集] アメリカ合衆国のルイジアナ州ニューオーリンズで生まれる。15人の有名プログ

    ケン・トンプソン - Wikipedia
  • 現在利用可能な携帯のドメイン一覧と、携帯メアド判定PHPスクリプト(2012年9月更新) - Y-Ken Studio

    はじめに 現在、Web上に情報はあるが、果たして現在も使われているのか分からない携帯電話のドメインがあります。 それらをキレイに整理してみようという事で、MXレコードの存在確認含め、徹底調査を実施。 おまけとして、PHPのサンプルコードも作成しました。 なお、k.vodafone.ne.jpは関西地域のソフトバンクである、というような情報は「携帯の全てのドメインの種類を教えてください。 docomo.ne.jp等 - 人力検索はてな」を参照願います。 各携帯キャリア毎の状況調査 MXレコードは複数あった場合は1つ目を記載しています。 ■ DoCoMoの携帯電話で使われている(いた)ドメイン ドメイン MXレコード コメント @docomo.ne.jp mfsmax.docomo.ne.jp 現役 @em.nttpnet.ne.jp igw50.pmc.nttpnet.ne.jp 廃止 @p

    現在利用可能な携帯のドメイン一覧と、携帯メアド判定PHPスクリプト(2012年9月更新) - Y-Ken Studio
  • Bash scripting

    Bash スクリプトを書くための小技集です. 変数について 文字列のクオート 単語分割 代入 パイプ,サブプロセス テキスト処理 文字列の長さ 文字列の切り出し (substring) 文字列分割 大文字小文字変換 文字列が空か パターンマッチ(グロブ) パターンマッチ(正規表現) 単語単位でパターンマッチ 文字列削除 文字列置換 文字列置換 (正規表現) 数値演算 ファイルシステム 1行ごとに処理 文字列を置換して保存 コマンドが実行可能か ファイル名,拡張子 などを取得 コマンドライン引数 引数を処理する (getopts) 引数を処理する (getopt) プロセスプロセスの終了を監視する 参考 1. 変数について 1.1. 文字列のクオート # " foo=20\" # クオートしない文字列では " をエスケープ foo="20\"" # ダブルクオート中でも " をエスケープ f

  • 正規表現サンプル(最短一致について)

    「.*」や「.+」を使うと、限りなく連続した文字を表します。 これは非常に便利なのですが、予想以上に長くマッチして、思ったように動かないことがあります。 これを解決するためには「?」を付加して最短一致するように仕向ける方法があります。 また、ここで説明する「?」は「直前の文字の0回または1回に一致」とは違います。 文字は同じですが、まったくの別物です。(記述する位置で見分けてください。) たとえば、HTMLのタグを消す場合、このように書いたとします。(Perlの置換文法) s/<.+>//g これでタグは消えるのですが、タグだけではなく、タグに挟まれた間の文字まで消してしまいます。(下線部分) <P>abc</P> 理由は最長一致モードで動作しているからです。 動作をみると、途中に「>」が出てきているのですが、そこでは止まらず、最後の「>」までマッチしていま

  • 富豪的正規表現で常用漢字とか色分け表示すれば… - 遠近法ノート

    テキストエディタに、色分け表示ってありますよね。プログラムやHTMLのソースを表示するのに使われてるやつ。あれって普通の文章書きにも使えるんじゃないかと思うんですよね。たとえば「」(カギ括弧)の中を色文字にするとか簡単にできるわけで。 それはさておき、タイトルどおりなのですけど、常用漢字を色分け表示する設定を作ってみました。 この画像は、文字コード表の第一水準の最初のあたりを色分け表示させたものです。見てのとおり常用漢字はバラバラに散らばって入っているわけで、正規表現でよくある [0-9]みたいな範囲指定はまったく不可能。だったら[ ]の中に常用漢字をそのまま全部入れてしまえばいいのではないか、という富豪的アプローチです。 JeditXの設定ファイルをこちらからダウンロード出来るようにしておきますので、まあ試してみてもらえればよいかなと。 常用漢字2010改定Coloring.plist

    富豪的正規表現で常用漢字とか色分け表示すれば… - 遠近法ノート
    iww
    iww 2012/02/29
    『富豪的正規表現』って素敵な表現だ
  • Matzにっき(2007-05-25)

    << 2007/05/ 1 1. [Ruby] ITmedia エンタープライズ:刑務作業でRuby、世界初の受刑者によるソフトウェア開発 2. [Ruby] MS、「Silverlight」を複数プラットフォーム対応へ - CNET Japan 3. お客様 4. [Ruby] Calling Erlang from Ruby (Teaser) 2 1. [言語] random-state.net / Method Cache Hacking (May 1st 2007) 2. ICFP Programming Contest 2007 3. 「働く」って何だっけ?日の労働観を再考せよ (新日的経営の姿):NBonline(日経ビジネス オンライン) 3 1. [原稿] 日経Linux 2007年7月号 2. [言語] The World of Hello World 3. [言語]

  • 5.7.0がマージされた件について - 報國挺身日記

    このまま放置すると、私のほうが方針を変えたと思われるので事実を書いておきます。 私の方針は最初から全く変わっていない この件について、関係者からメールが来たことは一度もない 従って、話し合いをしたこともない ある日突然、5.7.0がRubyにコミットされていた http://www.atdot.net/~ko1/diary/200704.html#d24 松氏のほうに話し合うつもりがあったとすれば、5.7.0をコミットする前に何故、確認のメールを私に送ることさえしなかったのでしょうか? 私から拒否のメールを受けることが僅かでも損になると思ったからでしょう。 これから私にできることは何もありませんので、今後何も起こりません。従って、この件について私にメール、コメント等を送らないでください。返事をしませんので。

    5.7.0がマージされた件について - 報國挺身日記
  • [Firefox] Adblock Plus フィルタの書き方メモ - こじょらぼ

    Adblock Plus はどのようにフィルタを処理しますか、また、どのようなフィルタがより高速ですか? すべてのフィルタは、内部で正規表現に変換されます。 例えば、フィルタ「ad*banner.gif|」は、正規表現「/ad.*banner.gif$/」に変換されます。 しかし、仮にすべてのフィルタと照合しなければならないアドレスを処理するときでも、 単純にすべてのフィルタを次々とマッチングするわけではありません。 また、フィルタを正規表現に変換する際、Adblock Plus はテキスト情報の取得を試みます。 ここでいうテキスト情報とは、複数のフィルタに共通する、8文字の文字列(以下「ショートカット」) です。 (文字数は任意ですが、ここでは8文字を例にしています) 例えば、フィルタ「|http://ad.*」の場合、Adblock Plus は「http://a」「ttp://ad」

  • 正規表現テスト君

    正規表現テスト君 ver 0.9.7 2018-08-30 XHTML から HTML5 風に書き換える 2008-06-01 入力欄の自動可変。ちょっとバグ取り 2008-05-18 複数行も入力可に、位置マッチも表示 2008-05-01 テスト対象を追加できるように改造 2008-05-01 デザインちょっと変更 2008-04-29 改行表示対応 2008-04-24 とりあえず公開

    iww
    iww 2011/09/28
    リアルタイムで反映されるのでちょっとした正規表現を作るときに超便利
  • awk歴一日の初心者が語るawk理解のポイント - シリコンの谷のゾンビ

    今までテキスト処理などでワンライナーを使うときはperlを使っていた.Perlを先に覚えた身としてはawkやsedは過去の産物だと思い込んでいた.awkの方が簡潔に書けるケースに出くわしたことをきっかけにawkを勉強してみたら単なわず嫌いだったことに気が付いたのでポイントをまとめてみる. なおプログラミング言語としてはAWKという表記が正しく (Aho, Weinberger, Kernighanの頭文字! ということだけは以前から知っていた),オリジナル処理系のことをawkと呼ぶのだろうけれど,今回は処理系の違いは気にしないのでawk, nawk, gawkの違いは気にしないことにした.ていうか詳しく知らない. 「awkってなんぞ?」という方が対象読者.スクリプト言語と正規表現の基礎知識が少しでもあれば,たぶんすぐに使えるようになると思う.awkを一度でも使ったことがある人には新しい情

    awk歴一日の初心者が語るawk理解のポイント - シリコンの谷のゾンビ
    iww
    iww 2011/09/20
    なんというわかりやすさ
  • 正規表現

    演算子やらメタ文字やら色々覚えなきゃいけない事が多い正規表現の解説。 文字クラス - 範囲 ^ 先頭に置くとそれ以外にマッチ /[01234567]/ 0~7 までの数字 1 文字にマッチ /[0-9\-]/ 数字 1 文字かマイナス文字 1 文字にマッチ /[^0-9]/ 数字以外の 1 文字にマッチ /[a-zA-Z]/ 英字 1 文字にマッチ /[0-9]+/ 1 文字以上の数字にマッチ メタ文字 . 改行を除く任意の 1 文字 * 0 回以上のパターンの繰り返し + 1 回以上のパターンの繰り返し ? 0 または 1 回のパターン ^ 行の先頭 $ 行の終端又は行末の改行の直前 \ 直後のメタ文字をクォート | パターン論理和 () グループ化 [] 文字クラス {} 量指定子 \t タブ \n 改行 \r リターン \f 改ページ \e エスケープ \l 直後の文字を小文字にする

  • バイナリデータのヘッダを正規表現でチェック

    概要 データの準備 実際の話1 ^^; バイナリエディタで開く Emacs をバイナリエディタとして使う JPEG, PNG, GIF 画像を見てみる. JPEG 画像を見てみる PNG 画像を見てみる GIF 画像を見てみる 数々のファイルのヘッダを確認する 正規表現作成 概要 あるファイルが画像データであるかどうかを判定するために, そのファイルのヘッダ部を正規表現でチェックするという方法がある. 例: Hatena::Diary - Web アプリ開発 独習メモ - 画像ファイルタイプ自動判別 この例では, JPEG 画像ならば /^\xFF\xD8/, PNG 画像ならば /^\x89PNG, GIF 画像ならば /^GIF8[79]a/ という正規表現によって チェックを行っている. では, あまり広く使われていないようなバイナリファイルのヘッダを 正規表現でチェックできるように