aaaa@te2.jp, bbbb@te2.net, cccc@te2.com 上記のようにあるフォーマットに基づいた文字列の一部だけを変更したい場合にこの正規表現を使用できます。 この例では、メールアドレスの書式のドメイン部分を te1 から te2 に変更しています。 そのほかの部分は変えません。 正規表現の書き方 上記の文字を任意の文字列に変えてテキストエディターの置換画面に入力してください。 (検索文字列と置換文字列の両方を入力してください。) 「正規表現を使用する」にチェックを入れるのを忘れずに。 正規表現の説明 検索文字列の「()」は、置換後にそのまま残す部分を表します。($1、$2で 参照できます。) 検索文字列の「\.」は「.」(ドット)そのものを表します。正規表現では「.」 は意味を持つのでエスケープします。 検索文字列の「.+」は1文字以上の文字を表します。そのすぐ後ろ
sedは与えられた文字列を,ルールに従って変換するコマンドだ。例えば,文字列の置換,行の削除といった処理が行える。 変換に利用できるルールには下表「sedの条件式」のような条件式が利用できる。例えば,文字列を挿入したい場合は「a」や「i」の後に挿入する文字列を指定する。文字列を置換したい場合は「s/置換ルール/置換文字/」と実行する。 置換ルールの最初に数値を指定すると,指定した行のみが処理される。例えば,「3d」と指定すると,3行目が削除される。 sedコマンドで実際に変換を行う場合は,変換処理内容は「-e」オプションを指定した後に記述する。また,sedコマンドに指定したファイルの内容を処理する。例えば,source.txt内のLinuxをリナックスに置換したい場合は,次のように実行する。 $ sed -e "s/Linux/リナックス/g" source.txt 結果は標準出力(ディス
Python で文字列を別の文字列で置換したいときは replace あるいは re.sub を使います。 replace は単純な文字列置換を行います。正規表現を利用したより複雑な置換を行うためには標準ライブラリの re モジュールにある re.sub を使用します。 replace を使用して文字列を置換する replace の記述方法は以下の通りです。
Pythonの文字列置換は、置換の仕方やバージョンによって利用すべきモジュールが異なっており、少しわかりにくいので、Python 2.xでのstrとunicode、3.xでのstrでの置換をまとめます。 文字列による単純な置換 (str.replace) str (2.x) / unicode / str (3.x)のどれでもほぼ同じです。 src = 'I like orange.' dst = src.replace('orange', 'apple') # 'I like apple.' str.replaceの第3引数で置換を行う最大回数を指定できます。 str.replace (2.x) str.replace (3.x) 正規表現による置換 (re.sub) str (2.x) / unicode / str (3.x)のどれでもほぼ同じです。 import re src =
RubyでHTMLやXMLをパースする構文解析ツールの定番は、Nokogiriです。スクレイピングする際の必需品で、なくてはならないモジュールの1つです。ただ色々なことが出来る反面、どこから取りかかれば良いのか解り難い部分もあります。自習を兼ねて、Nokogiri概要と主要な機能を紹介してみます。 Nokogiriとは何か? ReademeによるとNokogiriとは、「HTMLとXMLとSAXとXSLTとReaderのパーサー」で、特徴としては、XPathとCSS3セレクター経由で探索する機能を持つことのようです。他にもHTMLやXMLのビルダーの機能を持っていますが、HTMLとXMLのパーサー(構文解析器)と覚えておけばよいでしょう。 Nokogiriのクラス構造 Nokogiriは、なかなか巨大なライブラリです。10以上のモジュールと70以上のクラスで構成されていて、yardでダイア
対策 (1)HTMLサニタイズ法 ・文字列を出力する直前に、htmlspecialchars(変数, ENT_QUOTES)をかけます。 第2パラメータのENT_QUOTESを省略すると、シングルクォーテーションが処理されません。 echo htmlspecialchars($_GET['message'], ENT_QUOTES) ・属性値にURLを渡す場合などに、「javascript:」という形でJavaScriptが埋め込まれることがあるので、 preg_replace()関数で、「javascript」を除去します。 また、Internet Explorerのバグで(仕様?)、「javascirpt:」という文字列の間に\0,\t,\r,\nなどのコントロールコードが入っていてもJavaScriptと見なすため、 それらの文字を除去する必要があります。 $url = preg_r
ereg()が使えなくなるならmb_eregを使えばよいという意見もありますが、POSIX正規表現が使えなくなるとmb_eregも使えなくなる気がします。 ereg_replace() preg_replace()で置き換え可能 $string = 'test site'; echo ereg_replace("test", "example", $string); は $string = 'test site'; echo preg_replace("/test/", "example", $string); ereg() preg_match()で置き換え可能 $string = 'test site'; if(ereg("test", $string)){ echo 'match!'; } は $string = 'test site'; if(preg_match("/test/"
正規表現でメールアドレスをバリデート。 前から一度ちゃんと調べてみようとは思っていたんですが、少し調べただけで、いろいろ出てくるから困る。正規表現もいまだ勉強中の身としては、判断が付かない。 実際、厳密にチェックしようと … 続きを読む »
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}$
2008/02/07 修正 ( Blogger投稿時に、バックスラッシュ2つが1つに変換されていた(全角で掲載することにより回避。全角の¥は半角に読み替えてください!) domainの先頭は数字でもOKにした(ドメイン制限の緩和に合わせた) domainのlabelの最後に?を追加(漏れていた)) 何回か挫折したけどもう一度チャレンジしてみた。 RFC 2822を読み解くのは辛いので、基準として「正しい方法」でメールアドレスを確認するには - J0hn D0e の日誌に書いてある『「正しいメールアドレスの条件」10か条』をなるべく満たすことを目指した。 できたのはこれ。 preg_match('/^([-!#-¥¥'*+¥¥/-9=?^-~]+(¥¥.[-!#-¥¥'*+¥¥/-9=?^-~]+)*|"([]-~!#-[]|¥¥¥¥[ -~])*")@[a-z0-9]([-a-z0-9]{
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 この記事の情報は古いので,最新の情報が欲しい方は 「PHPで各種バリデーション」 をお読みください。 訂正: IPv6のメールアドレスは IPv6: プレフィクスが必要です。PHP7.1時点でこの形式に対応していることを確認しました。 - 誤: a@[2001:0db8:bd05:01d2:288a:1fc0:0001:10ee] - 正: a@[IPv6:2001:0db8:bd05:01d2:288a:1fc0:0001:10ee] 関数ラインナップ 私の関数 function validate_email($email, $strict = true) { $dot_string = $strict ? '(?:[A-Za-z0
メールアドレスを入力させるフォームを作るときなどで、 入力されたアドレスが正しいメールアドレス(RFCに準拠しているという意味で)であるかどうかを チェックしたい時は、正規表現を使ってチェックすることができる。 if(preg_match('/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/iD', $mailaddress)){ return '正しいメールアドレスです' }else{ return '正しくないメールアドレスです' }
CakePHP3で一つのコントローラないでお互い独立したテーブルを扱うには単純にTableRegistry::getするだけです。 下記サンプルはbakeした際に自動生成されるコードをベースに作成しました。useに「use Cake\ORM\TableRegistry;」を追加すると上記のTableRegistryが使用できるようになります。 自動生成されるコントローラをベースにすると 1.use Cake\ORM\TableRegistry;を追加 2.TableRegistry::getでテーブルをインスタンス化(例ではinitialize内で2つのテーブルを生成) 3.ビューに渡す(例ではindexアクション内) (ビュー内で両者を表示) コントローラ例 <?php namespace App\Controller; use App\Controller\AppController;
諸事情で特殊記号(☆)とかが文字列に入っていたら、排除してちゃんとした文字列に直したい、ということがあって調べたので共有。 $address = '東京都☆渋谷区'; $formated_address = preg_replace("/[^ぁ-んァ-ンーa-zA-Z0-9一-龠0-9\-\r]+/u",'' ,$address); echo $formated_address; // 東京都渋谷区 って感じらしいです。 特殊記号以外の文字(普段使ってる漢字とか英数字)って正規表現だと[ぁ-んァ-ンーa-zA-Z0-9一-龠0-9\-\r]って表現できるんですね。 なので^を使ってそれ以外が合ったら空文字に変換していると。 なるほどなぁ( ´_ゝ`)
連載の4回目の今回は、URLのクエリ変数や値を書き換える Apache Rewrite 設定のサンプルを示したいと思います。 設定前の注意事項 「Directory コンテキストや .htaccess で転送設定する場合」と「VirtualHost コンテキストで転送設定する場合」とで、検索条件の先頭に「^/」が必要な場合とそうでない場合とがあります。 どちらのディレクティブに設定しようとしているのかを意識してください。 詳しくは以前の記事「ApacheのRewriteを設定する前に知っておくべきこと」を参考にしてください。 本稿では、VirtualHost ディレクティブで転送設定する場合の記述をしています。 Directory ディレクティブや .htaccess に設定する場合は、「^/」の記述を変更して設定してください。 また今回も RewriteCond ディレクティブを利用しま
はじめに 「英数記号あり(大文字小文字の区別なし)で、かつ8文字以上」の正規表現 の内容と重複しますが、言語ごとに最適化したものもまとめておきます。但しあまり知らない言語もあるので、誤りなどありましたら指摘お願いします。 留意した点 行 JavaScriptでは、マルチラインモードを指定しない限り ^ $ がそれぞれ先頭と末尾を表す。\A \z はそもそも存在しない。 Rubyでは、デフォルトでマルチラインモードなので、^ $ はそれぞれ行頭と行末にマッチしてしまう。これでは正規表現が意味を為さないので、先頭と末尾にマッチする \A \z を使用する。 PHPではRubyほど深刻ではないが、$ が末尾または改行からの末尾にマッチしてしまうので、改行を含まない \z を使用する。 RubyやPHPの \z は、Pythonにおいては \Z に相当する。 パターン修飾子 JavaScriptや
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く