Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
特定コマンドの正規表現で使えるメタ文字が何だかわからない! 正規表現自体は知っているけど、それが今から使おうとしているコマンドで使えるものなのかわからずに困っている人も多いと思うのでまとめてみた。 たった3つの正規表現メタ文字セットだけ知ればいい コマンドによって、対応している正規表現メタ文字の範囲には違いがある。しかし、最低限知っておけばよいのは2種類+1サブセットの3つだけだ。 BRE(基本正規表現)メタ文字セット ERE(拡張正規表現)メタ文字セット AWKのサブセット もちろん、これ以外にもGNU拡張正規表現メタ文字セットやPerl拡張正規表現メタ文字セット、JavaScript拡張正規表現メタ文字セットなどいくつかあるのだが、「どのUNIXでも(=POSIXで)使える」という特長を持たせたいのであれば、それらは覚えても意味がないので上記の3つさえおさえておけばよい。(例えPOSI
正規表現の文字クラスの略記法 \d と \s と \w がいつのまにかアレレなことになっていたのでメモ。(1 Perl 5.8 以降で正規表現を使うには use utf8 が必須。 use utf8 では \d と \s と \w の文字クラスの内容が Unicode のカテゴリーに基づいている。 InDesign(Boost)も同様。 PCRE や Ruby は変わりなし。 (2 参考資料:perldoc の perlrecharclass 参考資料:Programming Perl の 5.4. Character Classes ちょっと詳しく見ていきます。 *以降、Perl = use utf8 の Perl ほとんど全ての人が [0-9] の10文字として使っていますが、Perl では \p{Nd} です。ただし、Perlのバージョンによって(対応しているUnicodeバージョン
大垣さんのブログエントリに刺激を得て、古いmb_eregの挙動を調査しました。その結果、 PHP4.2.x上のmb_eregは複数行モードで動作していたことが分かりましたので報告します。 前回までのまとめ 「正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう」にて、Ruby、Perl、PHPの正規表現では、^ と $ は、「行」の先頭と末尾を示していて、文字列の先頭と末尾を指定するには、\A と \z を使うべきであることを説明しました。そして、Rubyの場合はデフォルトが複数行モードであるので、^○○○$ という形で全体一致検索を指定したつもりでも、簡単にチェックをすり抜け重大な脆弱性に直結します。一方、PerlやPHPの正規表現はデフォルトでは単一行モードであるので、文字列末尾の改行をチェックできないという問題はあるものの、重大な脆弱性に直結するケースはあ
正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlやPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/
$str =~ /^--/m and print "複数行モードでマッチ\n"; $str =~ /<script.*?<\/script>/s and print "一行モードでマッチ\n"; 定義が分からない方は、後述で定義を解説しています。 一般に Perl では マッチ m// や置換 s/// の右側(左側ではないことに注意)に伴う上記の m や s のような英文字のことを修飾子 (modifier) と言います (see: perlre)。 私はこれをよく間違えたり忘れたりするので、こんな覚え方を考えてみました。 そもそも名前がややこしい 一行モード(Single line mode) m//s は、ドット(.)が 「複数行」 にわたってマッチするようになる 複数行モード(Multiple line mode) m//m は、"^" "$" が 「一行」 ごとにマッチするように
2013年02月09日22:30 カテゴリTipsLightweight Languages regexp - で Apache Combined Log を Parse する けだし同感。 ましてや Apache Combined Log を LTSV に を書いた後では。 combined2ltsv.plの最初のバージョンのparserはこうなっていました。 sub parse_line_ng { my $line = shift; my %rec; ( $rec{host}, $rec{ident}, $rec{user}, $line ) = split ' ', $line, 4; $line =~ s/^(\[.*?\]) //; $rec{time} = $1; $line =~ s/^\"(.*?)\" //; $rec{req} = $1; ( $rec{status},
Shibuya.pm #16 「夏の正規表現祭り」で、正規表現のお話をさせていただきました。 まぁ、「電話番号にマッチする正規表現」とか「郵便番号にマッチする正規表現」とかよく書かれてるけど、「どれもこれも手緩いよね」って話。 あ、だいぶはしょったかな。 とりあえずスライドに書いたので、発表をご覧になってない方はスライドからご覧ください。 ふと見返すと、このブログで電話番号の正規表現を公表するのは 3 度目ですが、あれからだいぶ経ってますね。 今ではもっと厳密な正規表現を作っています。 そして、Number::Phone::JP に続き、Number::ZipCode::JP という酔狂なモジュールが公開された記念で、郵便番号にマッチする正規表現を今回初めて公開しますが、そもそもここまで厳密な正規表現が公開されること自体、本邦初公開ってヤツでしょう。 Shibuya.pm でも言いましたが
2011年7月6日(水)にShibuya Perl Mongersテクニカルトーク#16「夏の正規表現祭り」を開催しました。 http://shibuya.pm.org/blosxom/techtalks/201107.html 今回は株式会社ミクシィさんの新オフィスのセミナールームをお借りして開催することとなり、その後の懇親会も隣のコラボレーションルームで開催することができました。素敵なオフィス体験でした。 テーマ – 「夏の正規表現祭り」 日時 – 2011年7月6日(水) 18:45-21:00 (18:30 開場) 会場 – 〒150-0011 東京都渋谷区東1-2-20 住友不動産渋谷ファーストタワー 7F (株式会社ミクシィ) 料金 – 無料 定員 – 110名 (いちばん大きなセミナールーム) 事前登録 – http://atnd.org/events/17082 にて参加申
swatmac.info Buy this domain. 2020 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy
正式に日本語ハッシュタグが使えるようになったので、色々ためした結果、以下の正規表現でほぼ公式と同じ動作になった。「ほぼ」なのはちゃんとテストしたわけじゃないので。使うなら自己責任でどうぞ。 sourcecode language=“text”([a-zA-Z0-9_\u3041-\u3094\u3099-\u309C\u30A1-\u30FA\u3400-\uD7FF\uFF10-\uFF19\uFF20-\uFF3A\uFF41-\uFF5A\uFF66-\uFF9E]+) ``` iPhoneの公式クライアントだとなんか動きが違ったりするし、half-widthのカタカナ半濁点はだめだったりとかなんかバグなのか仕様なのかよくわからず。半濁点も通すようにしたければ、FF9EをFF9Fにすればおk。 Tweet
Shibuya Perl Mongersテクニカルトーク#16 を2011年7月6日(水)にmixiさんの新オフィスをお借りして開催します。 今回はmixiさんのご厚意によりテクニカルトーク後に懇親会を開催する予定となっております。 こちらも時間の許す限り奮ってご参加いただければと思います。 テーマ - 「夏の正規表現祭り」 日時 - 2011年7月6日(水) 18:45-21:00 (18:30 開場) 会場 - 〒150-0011 東京都渋谷区東1-2-20 住友不動産渋谷ファーストタワー 7F (株式会社ミクシィ) 料金 - 無料 定員 - 110名 (いちばん大きなセミナールーム) 事前登録 - http://atnd.org/events/17082 にて参加申し込みが必要 → 満員御礼 中継 - http://www.ustream.tv/channel/shibuya-per
Web エンジニアであれば, Apache のアクセスログを tail -f で流しながら確認することは多いのでは無いでしょうか. 通常は白黒で非常に見づらいと思いますが, 以下の記事を参考に, カラフルにしてみました. RubyでANSIカラーシーケンスを学ぼう! (hp12) 今回用意したコードはこちら. shebang を合わせてもたった 4 行です. こちらはログフォーマットに依存するので, ご注意ください. combined や vhost_combined といったログフォーマットを前提としています. 以下のようにして使用します. $ tail -f /var/log/apache/path_to_access_log | ./colorize.rb 実際の使用例は, 右の画像の通りです. (このブログのアクセスログです. IP 等は枠外にはみ出させました.) tail -f
このドメインを購入する。 gkbr.me 2018 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy
PHPで正規表現を扱う上で、正規表現パターンの記述で迷ってしまっている人が多い気がする。 PHPが文字列を生成する その文字列を正規表現エンジンに渡す と言う2段階の手順があり、そこがやや複雑なので混乱を招く部分があるのだと思う。 混乱を防ぐためには、その手順をしっかり追って、正規表現リテラルとして指定している文字列をechoしたらPHPがどのように出力するかを考えてみると良い。 例えば以下のようなコードがあったとする。 preg_match('/\\d/','3d'); まず、preg_match()の第一引数になっている正規表現パターンをechoで出力するとどうなるかを考える。 echo '/\\d/'; #/\d/ なので、/\d/が正規表現エンジンに渡されると分かる。なので、上記のパターンはマッチする。 さらに混乱を招きやすくしているのが、PHPの文字列の仕様で、特にバックスラッシ
HiFi RegExp Tool - Write and Test Regular Expressions in Real-Time その場で動作させて確認する正規表現入門ツール「HiFi RegExp Tool」 ボックスの中に、正規表現を入れるだけで、リアルタイムにページの内容が正規表現に沿ってマッチング&ハイライト表示され、どの正規表現がどういう意味を表すのかというのが一目で超クイックに分かってしまう便利ツールです。 ボックスに入れられた正規表現に沿って次のように、ハイライト表示されて、カラフルに色分けしてくれます。マッチしたテキストの一覧もページ下部に色付きで分かりやすく表示してくれます。 ページ内のテキストはクリックすることで自由に書き換えることも可能です。 サイドバーには正規表現のチートシートも掲載されています。 これはかなり便利。正規表現入門の高速道路ですね。
※ 画面は公式サイトより Webアプリケーションを開発したり、よりコーディング量を少なくシステムを開発する上で正規表現の存在は欠かすことができない。良い正規表現を組めるかどうかで見通しの良いシステムができるかどうか決まってくるだろう。 Named captureをJavaScriptでも 昔からある正規表現ではあるが、JavaScriptでサポートされているものは機能があまり多くない。他のプログラミング言語同等のレベルに引き上げてくれるのがXRegExpだ。 今回紹介するオープンソース・ソフトウェアはXRegExp、JavaScriptの正規表現を機能強化するライブラリだ。 XRegExpは通常使える正規表現機能に加えて、幾つかの機能追加を行っている。特徴的なものとしては、Named captureがあるだろう。これは正規表現のマッチング結果を$1、$2ではなく、指定した名前(nameやv
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く