タグ

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

  • 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]+$/

  • 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>が見つかった)時点で検索をやめます。 ?をつけな

  • 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」をつけることで、改行にもマッチ。
  • http://www.rider-n.sakura.ne.jp/regexp/regexp.php

    chanpon0
    chanpon0 2011/04/05
    神ツール。感謝。
  • サービス終了のお知らせ

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • 【ハウツー】初心者必見! サンプル集で学ぶPHP正規表現のキホン (2) preg_replaceを使った実用サンプル集(1) - URI/アドレスからアンカー作成 | エンタープライズ | マイコミジャーナル

    PHPで正規表現による文字列置換をおこなう場合、次の関数を使用する。 POSIX準拠のereg_replace Perl互換のpreg_replace マルチバイトに対応したereg - mb_ereg_replace ereg_replaceはPHP 5.3.0より、非推奨の関数となった。ここではpreg_replaceをもちいたサンプルが紹介されている。 サンプルの動作環境は次のとおり。 OS: Mac OS X 10.6.3 PHP: 5.3.1 まずはシンプルなサンプルから a_simple_example.php <?php $text= 'My name is Brian'; $pattern = '/My name is (Brian|Sam|Zach)/'; $replacement = '$1 is a pretty cool guy.'; echo preg_repla

  • 正規表現

    文字クラスを示します。角かっこ内のいずれかの文字に一致します。たとえば、[abc] と指定した場合、"a"、"b"、および "c" のいずれかに一致します。 文字クラスの先頭にこのメタ文字がある場合は、後に続く文字クラスが否定されます。このように指定した文字クラスは、角かっこ内の文字以外の任意の文字に一致します。たとえば、[^abc] と指定した場合、"a"、"b"、および "c" 以外のすべての文字と一致します。 正規表現の先頭にある ^ は、入力文字列の先頭に一致します。たとえば、^[abc] と指定した場合、"a"、"b"、または "c" で始まる入力文字列だけに一致します。

    chanpon0
    chanpon0 2011/03/10
    正規表現一覧
  • 猿でもわかる正規表現 - phpspot

    Perl,PHP,その他結構使われる正規表現について、簡単にまとめます。 正規表現を簡単に言うと、検索を便利にするちょっとしたテクニックです。 使えると文字列処理に凄く強くなります。 私に探せない文字列はない、とまで言えるのかもしれません。 ○文字以上、□文字以下 1文字以上を○回以上、□回以下 aまたはbを○回以上、□回以下 複数文字のどれかを○文字以上□文字以下 メタ文字 最初から最後まで もどる スポンサードリンク

  • 正規表現チェッカー PHP: preg_match() / JavaScript: match()

    PHP: preg_match() / JavaScript: match() 正規表現チェッカー ver3.1 PHP及びJavaScriptコーディング中に正規表現を記述する際の動作チェック等にご利用ください。 正規表現と対象文字列を入力し、[チェック!]ボタンをクリックすると、PHP: preg_match()と JavaScript: match()の実行結果がフィードバックされます。 正規表現

  • サルにもわかる正規表現入門

    1.正規表現とはなにか? 端的に言えば、「いくつかの文字列を一つの形式で表現するための表現方法」です。 では、なぜこの表現方法が有名なのかといえば、この表現方法を利用すれば、たくさんの文章の中から容易に見つけたい文字列を検索することができるためです。 この形式を使えば、以下のようなコギャルの会話にもついていけます(^_^) 「Windows ってあって…WINDOWSかもしんないしぃ、次にスペースが入ってるかもしんないしぃ、入ってないかもしんないし、後にやっぱ 98 が付くってゆーかー、もしかすると 95 が付いてもいいかなぁって感じでぇ…」 これ以上続けるとこちらがキレてしまいそうなのでこのあたりにしておきますが…これは、正規表現で書くと… W(indows|INDOWS) ?9[85] って感じで一行で書けちゃうっていうかぁ…あ、つい、口調が移ってしまった(^_^;)…書けるのでありま

  • PHP 正規表現の基本 (preg_match)

    正規表現をまとめてみる。 preg_match で使われる正規表現の書き方の前に まずは、 <検索対象文字列が1行か?それとも複数行か?> 文字列の中からパターンに合致する部分を探し出す場合、その文字列が1行(改行文字が1つ)なのか、複数行(改行文字が複数)なのかで、マッチ演算子を適切に指定。 preg_match("/パターン/", 調べる文字列); "/パターン/"  //文字列の1行目のみを調べる "/パターン/g"  //複数行を調べる "/パターン/s"  //改行文字を無視し、1行とみなして調べる ついでに、 "/パターン/i"  //文字列の大文字・小文字を区別しない "/パターン/is"  //大文字・小文字を区別せず、1行とみなして調べる <基> preg_match は、文字列中に現れた最初のパターンのみを検出。

    chanpon0
    chanpon0 2010/10/02
    大文字小文字を区別しない 複数行を1行にみなす
  • 4.11 正規表現関数

    4.11 正規表現関数 正規表現パターンを用いた検索や置換はデータベースを利用したWebアプリケーションではよく使います。PHPでは、そのために正規表現パターンを用いて処理する正規表現関数が準備されています。 正規表現検索で使用する関数には、preg_match関数、preg_match_all関数、preg_grep関数があります。 正規表現検索・置換で使用する関数には、preg_replace関数があります。 正規表現パターンを用いた文字列の分割に使用する関数には、preg_split関数があります。 ■preg_match() 対象文字列の中にパターン文字列にマッチするものがあるかないかをチェックするにはpreg_match関数を使用します。preg_match関数の書式は次のとおりです。 preg_match(パターン文字列, 対象文字列) サンプルのリストを4.55に示します。ア

  • 1