タグ

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

  • PHPで文字列の最初と最後の半角、全角スペースを取り除く | Time to live forever

    サイトではアフィリエイト広告を利用しています。記事内および商品リンクにはプロモーションが含まれる場合があります。 文字列の最初と最後のスペースを取り除きたい PHPのtrim()を使おうと思ったら、残念ながら全角スペースは取り除かれない仕様だった。 半角スペースだけじゃなく全角スペースも除きたかったので、その実装をメモしておく。 PHPのtrim()について PHPのtrim()の仕様は以下。 この関数は str の最初および最後から空白文字を取り除き、 取り除かれた文字列を返します。2番目のパラメータを指定しない場合、 trim()は以下の文字を削除します。 ” ” (ASCII 32 (0x20)), 通常の空白。 “\t” (ASCII 9 (0x09)), タブ。 “\n” (ASCII 10 (0x0A)), リターン。 “\r” (ASCII 13 (0x0D)), 改行。

    PHPで文字列の最初と最後の半角、全角スペースを取り除く | Time to live forever
    chanpon0
    chanpon0 2014/03/10
    マルチバイトの文字列操作は慎重に。
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

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

  • 正規表現の解説 初級編

    正規表現は英語の "Regular Expression" の訳です。文字列のパターンを表現するために使われます。 (正式な定義がどうなっているのかは知りませんので、正しい表現ではないかもしれません) 正規表現はUNIXの世界では古くから使われてきました。テキストデータの加工をするツールでは、大抵正規表現が使えるようです。 Windows(DOS)の世界では、ワイルドカードがよく使われてきましたが、正規表現の方が細かい指定が可能です。その分難しい(奥が深い)のも事実ですが。 元々は数学系の用語のようで、その場合正則表現という訳になるようです。もちろん、この場合上記の定義は嘘になります。テキスト処理のための解説なので、細かいことは許してください(笑) キャラクタ 文字の事です(分かってるって?(笑))。ちゃんと日語で書けよという方、正論です。ただ、正論は時によっては極論でもあります。 文

    chanpon0
    chanpon0 2013/05/17
    コード
  • Javascript で trim するには - Enjoi Blog

    By clicking “Accept all cookies”, you agree Enjoitech can store cookies on your device and disclose information in accordance with our Cookie Policy. Accept all cookies

  • JavaScriptで正規表現練習ゲーム作った - aike’s blog

    特に何か目的があるわけじゃないんですが、JavaScriptの練習のためにゲームを作ってみました。 Regex Of The Dead タイピングゲームのように正規表現を練習するためのシンプルなゲームです。ゾンビと一般人が迫ってくるのでゾンビの名前にだけマッチするように正規表現を入力して倒していきます。 HTML5の流れでオーディオ、グラフィック、フォントHTML/JavaScriptで簡単に扱えるようになり、さらにenchant.jsのようなゲームエンジンも充実してきて、ゲームJavaScriptだけで気軽に作れるようになってきたようです。 そんなわけで試しに書いてみたのがRegex Of The Deadです。プログラミングは長いことやっているもののゲームを作ったのは大学のとき以来かもしれません。 最初、何か良さそうなゲームエンジンがないものかいくつか調査しましたが、こういったタイ

    JavaScriptで正規表現練習ゲーム作った - aike’s blog
    chanpon0
    chanpon0 2012/10/08
    webゲーム
  • 正規表現サンプル集

    今日の正規表現Tips (2008/10/05) \d 0〜9の数字を表す正規表現です。 \D 数字以外を表す正規表現です。 正規表現では小文字が大文字になると反対の意味を持ちます。 ツール 正規表現チェッカー 正規表現Tips集 Tips その1 Tips その2 テキスト編集で役立つ『正規表現のサンプル集』を詳しい説明つきで紹介。 正規表現を使ってテキスト検索&置換して仕事の効率アップを図ろう。 ≪ メニュー ≫ 1.正規表現とはなにか? 2.正規表現を使う準備 3.正規表現サンプル集【検索編】 4.正規表現サンプル集【置換編】 5.正規表現のお勉強との紹介 6.エディタの強調表示でテキストに色づけ 7.プログラムで正規表現を使う 8.正規表現サンプルリクエスト

  • PHPで¥(円マーク)を正規表現でマッチさせる時の注意点 - アンバランスな日々に

    phpで¥(円マーク)を正規表現でマッチさせるときに、\\と\マークをエスケープさせたんですがエラーになりました。何が起こったのかよく分からなかったのですが適当に\マークを3つ、\\\と書いてみたらマッチしました。腑に落ちなかったので詳しく調べてみるとマニュアルに以下の記述が 注意: シングルクォートあるいはダブルクォートで囲まれた PHP の 文字列 の中では、バックスラッシュは特別な意味を表します。 そのため、正規表現 \\ を使用して \ とマッチさせたい場合は PHP のコード内では "\\\\" あるいは '\\\\' と記述する必要があります。 PHP: エスケープシーケンス - Manual なにやら特別なようです。とく・・べつ? とりあえず正規表現で使うときには\\\\と\マーク4つ使わないといけないみたいです。3つでもマッチしてくれるようですが。(ちなみに5つはエラーだよ

    PHPで¥(円マーク)を正規表現でマッチさせる時の注意点 - アンバランスな日々に
    chanpon0
    chanpon0 2012/08/10
    なぞいー。なぞいー。なんでー??
  • PHP: glob - Manual

    パラメータ pattern パターン。チルダの展開やパラメータ置換は行いません。 Special characters: * - ゼロ文字以上の文字にマッチします。 ? - 正確に(任意の)一文字にだけマッチします。 [...] - グループ化された文字のうち、一文字にマッチします。 はじめの文字が ! だった場合、 グループにないあらゆる文字にマッチします。 \ - 次に来る文字をエスケープします。 但し、GLOB_NOESCAPE が使われている場合は除きます。 flags 有効なフラグは次のとおりです。 GLOB_BRACE (int) {a,b,c} を 'a', 'b', 'c' にマッチさせるように展開します。 注意: GLOB_BRACE は GNU システムでないシステムによっては使えない場合があります。 使えないシステムの例として、Solaris や Alpine Lin

    PHP: glob - Manual
    chanpon0
    chanpon0 2012/05/16
    パターンにマッチするパス名(ファイル名)を取得。正規表現利くし地味に便利。
  • [PHP][正規表現]最短一致 SE&ビジネスパーソンとしてお勉強中なブログ

    phpでpreg_match_all()を使って、"<p>Red</p> or <p>Green</p>" から「<p>Red</p>」と「<p>Green</p>」を別々に取得したかったんだけれど。 どうやっても「<p>Red</p> or <p>Green</p>」って取れちゃう。 取れすぎだから。 要は最初の<p>から最後の</p>まで全部がキャプチャされちゃう模様。 という正規表現ビギナーらしい?罠にはまりました。。 で、色々調べた結果、「最短一致」というキーワードに辿りつきました。 辿り着くのに数時間かかったし…。 いやー。初心者が「最短一致」って言葉なんて知らないってば。 ということで"/<p>.*<\/p>/"を"/<p>.*?<\/p>/"に変えればOKでした。 ?(最少量指定子)を付けると最初にマッチした(この場合は</p>が見つかった)時点で検索をやめます。 ?をつけな

  • K2Editorでの正規表現の解説 目次

    K2Editorでの正規表現の解説 K2Editor では検索、置換、キーワードの強調などに正規表現を使う事が出来ます。このページは、その正規表現を説明する目的で書かれています。 K2Editorで公式にサポートしているのは、K2Regexp.dll による正規表現です。これから述べる内容も、K2Regexp でサポートしているものを対象としています。 K2Regexp.dll は BREGEXP.DLL(より正しく言えば、Linux 用の Bregexp ライブラリ)に制御系の拡張をしたものです。正規表現エンジン部分は BREGEXP から変更されていないようです。 BREGEXP は Perl5(perl version 5.002 だと思われる)互換の正規表現エンジンなので、Perl の解説がほぼそのまま使えますが、Perl 自体が正規表現と密接につながっているため、うまく適応するこ

    chanpon0
    chanpon0 2011/11/29
    後方参照など
  • 正規表現サンプル(最短一致について)

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

  • 正規表現の先読み・後読みを極める! - あらびき日記

    この記事は abicky.net の 正規表現の先読み・後読みを極める! に移行しました

    正規表現の先読み・後読みを極める! - あらびき日記
    chanpon0
    chanpon0 2011/09/06
    先読み後読み
  • kamolog » Blog Archive » 正規表現の先読み・後読み構文

    正規表現には"先読み"や"後読み"という構文がある.これらの構文を利用すると,マッチする対象となる文字列の直前・直後の文字列をマッチの条件として指定することができる.以下に簡単な説明と例を挙げる. 肯定先読み 構文 「(?=X)」という構文で記述する.Xは任意の正規表現. 意味 Xにマッチする文字列の最初の位置にある検索文字列にマッチする. 例 「\d+(?=円)」という例で考える.正規表現「\d+」は1回以上の数字の繰り返しである.「(?=円)」は肯定先読みで,「円」にマッチする文字列の最初の位置にある検索文字列にマッチする.これらを組み合わせて「1回以上の数字の繰り返し,ただし直後に「円」にマッチする文字列がある」と読むとわかりやすい. この正規表現に対しては「1円」や「100円以上」の数字部分がマッチする.「1」や「1ほげ」や「円1」はマッチしない. 否定先読み 構文 「(?!

    chanpon0
    chanpon0 2011/07/25
    先読み 後読み
  • 秀丸エディタQ&A集: 第Ⅳ部 - テキスト編集を極める!! 正規表現について

    第IV部〜テキスト編集を極める!! 正規表現について ●正規表現について 秀丸だけでなく、高度で自由度の高い検索をするには必須の「正規表現」。 ここでは実用上重要な例をとりあげながら、わかりやすく解説します。 今日からあなたの「検索」が変わります。 正規表現に関する話題は、 次の「【0】いんとろだくしょん」に続く 以下の5章から構成されています。 【1】 基編 〜表記のルールと意味〜 【2】 実践編 〜正規表現による置換の実際〜 【3】 まとめ 【4】 参考文献 【5】 (補足) 秀丸上での複数行にまたがる検索について ※以下の内容は、秀丸ヘルプの「検索系コマンド→検索→正規表現」の 内容についての補足です。 よってヘルプを参照しながら読まれる事を想定して書かれています。 【0】 いんとろだくしょん いきなりですがここでクイズです。

  • PHP: 正規表現パターンに使用可能な修飾子 - Manual

    Regarding the validity of a UTF-8 string when using the /u pattern modifier, some things to be aware of; 1. If the pattern itself contains an invalid UTF-8 character, you get an error (as mentioned in the docs above - "UTF-8 validity of the pattern is checked since PHP 4.3.5" 2. When the subject string contains invalid UTF-8 sequences / codepoints, it basically result in a "quiet death" for the pr

    PHP: 正規表現パターンに使用可能な修飾子 - Manual
    chanpon0
    chanpon0 2011/04/14
    preg_replaceのオプション。「sU」をつけることで、改行にもマッチ。
  • 正規表現:正しいURLかどうか調べる - phpspot

    <?php $text = "http://www.yahoo.co.jp/"; if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $text)) { echo "正しいURLです"; } else { echo "正しくないURLです"; } ?> <?php function is_url($text) { if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $text)) { return TRUE; } else { return FALSE; } } ?>

    chanpon0
    chanpon0 2011/04/05
    URLの正規表現
  • 正規表現 テストツールまとめ - doDOYA +!

    正規表現をテストできるWEBサービス(ツール)をまとめ。 どれも、正規表現を入力するとリアルタイムでマッチしたテキストをハイライト等で教えてくれます。 REJAX PHP5 PCRE|POSIX, Ruby, Perl 5, JavaScript等の正規表現 http://www.projects.aphexcreations.net/rejax/ Rubular http://www.rubular.com/ Rex V PHP PCRE、PHP POSIX、JavaScript の正規表現 http://www.rexv.org/ Regex Tester :: RegexPal http://regexpal.com/ PHP正規表現チェッカー http://www.rider-n.sakura.ne.jp/regexp/regexp.php メタ文字や記述方法がのっていたりとどれも

    正規表現 テストツールまとめ - doDOYA +!
  • http://www.rider-n.sakura.ne.jp/regexp/regexp.php

    chanpon0
    chanpon0 2011/04/05
    神ツール。感謝。
  • 正規表現サンプル(置換サンプル一覧)

    1.正規表現とはなにか? 正規表現を簡単にご説明します 2.正規表現を使う準備 エディタの設定はできていますか? 3.正規表現サンプル集 【検索編】 よく使う検索サンプルを取り揃え! 4.正規表現サンプル集 【置換編】 置換でこそ正規表現の威力を発揮! 5.正規表現のお勉強との紹介 ├お勉強編1 ├お勉強編2 ├お勉強編3 ├お勉強編4 └エスケープ文字 上から順番に見ていきましょう。だんだん難しくなります。 6.エディタの強調表示でテキストに色づけ 正規表現で見やすくなる 7.プログラムで正規表現を使う 各種プログラム言語での正規表現の使い方 8.正規表現サンプルリクエスト リクエストはこちらからお願いします 正規表現リクエスト回答集 リクエストに随時お答えしています 新・正規表現チェッカー 便利なツール。置

    chanpon0
    chanpon0 2011/04/05
    例題
  • komonet.ne.jp

    This domain may be for sale!

    chanpon0
    chanpon0 2011/03/24
    略記法