PHPカンファレンス札幌 2016 LT Talk https://github.com/sizuhiko/hexpress http://blog.open.tokyo.jp/2015/09/21/hexpress-ported-from-ruby-world.html

こんにちは、ミドルウェア開発チームの青木です。 先日、アプリケーションサーバーが応答を返さなくなるトラブルに遭遇しました。 今回はその時のトラブルの原因と対策の顛末についてお話しようと思います。 現象 アプリケーションサーバーが突如応答を返さなくなりました。 現象が発生したアプリケーションサーバーのスタックトレースを見ると、あるスレッドの先頭が上記のようになっていました。 "qtp258153142-514386" prio=10 tid=0x00007f40b8dbf000 nid=0x7b4e runnable [0x00007f415ccb0000] java.lang.Thread.State: RUNNABLE at java.util.regex.Pattern$Loop.match(Pattern.java:4692) at java.util.regex.Pattern$G
今の今まで、NSStringの潤沢かつ便利なメソッドの数々に甘えてしまったために、正規表現をいまさら勉強しているするぷ( @isloop )です。 こんな俺用メモなんかもつくってみたりしているのですが、やはりなんでもそうですが書かないと覚えないですね。 とはいえ、ちょっと効率のよい覚え方を編み出した気がします。 といってもCotEditorを使うだけなのですが。 CotEditorの素晴らしき検索・置換機能とハイライト機能。 プログラミング中に正規表現を試す場合は、どうしても処理を書かないといけません。さらに、そもそも正規表現が合っていないとキチンと出力されません。 正規表現がまだまだうろ覚えの僕は、なかなかスパーンと成功しないので書くたびイライラしていたのですが、プログラムに正規表現を走らせる前に、CotEditorに読み込ませたら、まるでアラサーの美人教師(赤眼鏡)の様に丁寧に添削して
正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlやPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/
Twitterに書いたことのまとめです。 プログラミング言語の仕様の一部として正規表現リテラルを提供することの得失について、JavaScriptを例に説明します。 ■より簡潔なコード 言うまでもありませんが、正規表現リテラルを使った方が簡潔なコードになります。 (new RegExp("abc")).exec(s) // リテラルを使わない場合 /abc/.exec(s) // リテラルを使った場合 また、正規表現リテラルがない場合は、文字列リテラルとしてのエスケープと正規表現としてのエスケープが二重に必要になる結果、コードの保守性が低下します注1。 new RegExp("\\\\n"); // リテラルを使わない場合 /\\n/ // リテラルを使った場合 ■エラー検出タイミング 正規表現リテラルがない場合、実際にその正規表現が評価されるまで記述エラーを検出することができません。正規表
空白文字が2種類あることを知らなかったんですよね(^_^;) まず、空白文字についての話の前に、知っておくべきことから。 Javascriptで"a"という文字を表現する方法。 alert("a");//a alert("\x61");//a alert("\u0061");//a これを比較してみる。 alert("\x61" == "a");//true alert("\x61" == "\u0061");//true alert("\u0061" == "a");//true 正規表現ではどうだろう? var ret ret = /\u0061/.test("\x61");//true ret = /\u0061/.test("a");//true ret = /a/.test("\x61");//true ret = /a/.test("\u0061");//true ret =
はじめまして、hachi8833です。 正規表現において、使わないまま死ぬのはあまりにもったいない「Unicode文字プロパティ」について解説します。これについてネット上にまとまった情報がほとんどなく、しかたがないので自分で書くことにしました。書きながら早くも記事があふれてきたので、見出しに「連載」の文字を追加などしてみました。たぶん他所ではほとんど見かけることのない連載になると思います。よろしくお願いします。 通常の開発においては、目的を達成する正規表現を作成してコードが動けば事足りるものであり、コーディング中に正規表現と延々付き合うことは普通ないでしょう。料理人は包丁を研ぐのに時間をかけすぎないものです。しかし特殊な業界の特殊な人々(日本に5人もいないと思います)は、来る日も来る日も正規表現を書き続けていたりするので、このUnicode文字プロパティは本当にありがたいものです。私の場合
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
IPv6 Address Validation と言うサイトがあります。IPv6アドレスとして妥当かチェックしてくれる上に、RFC5952に則った表記を教えてくれます。 ここでは正規表現によってIPv6アドレスとして正しいか評価しています。 それは、以下のような正規表現です。 IPv6アドレスをマッチする。 圧縮済みIPv6アドレスでもマッチする IPv4アドレスが含まれていてもマッチする リンクローカルアドレスを識別する為のインターフェース名が含まれていてもマッチする ((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く