preg_replace - 正規表現検索および置換の結果をブラウザでライブチェックできます。
preg_replace - 正規表現検索および置換の結果をブラウザでライブチェックできます。
Railsのアプリを作っていて電話番号のバリデーションをするための正規表現はどう書いたらいいのか悩んだので調べてみました ※細かくやっていますが新しい電話番号や考慮されないパターンがあるかもなのでバリデーションは緩くしておくことをおすすめします。 電話番号の正規表現 日本の一般の電話番号の正規表現はこうなりそう /\A(((0(\d{1}[-(]?\d{4}|\d{2}[-(]?\d{3}|\d{3}[-(]?\d{2}|\d{4}[-(]?\d{1}|[5789]0[-(]?\d{4})[-)]?)|\d{1,4}\-?)\d{4}|0120[-(]?\d{3}[-)]?\d{3})\z/ 想定している仕様 0から始まる市外局番込の10桁の番号 [2-9]から始まる市外局番を含まない5~8桁の番号 市外局番と市内局番は各1~4桁、合わせると5桁 になる 携帯電話とPHSは「070」、「0
はじめに 登録フォーム作るときとかに使いそうな正規表現ネタのメモです 細かいルールは別途学んでください 動作確認はテキストエディタ(秀丸・サクラエディタ)のチェックしかしていません メールアドレスの正規表現はRFCに準拠していません
どうもこんにちは。三宮です。 ちょっとした検索をするときに、正規表現にお世話になっています。必要な情報だけ抜き出したい……といった際に正規表現はとても便利です。特に、「~ではない行を探す」といった、否定条件の正規表現は多用しますね。 今回は、私が行検索でいつも使用している否定の正規表現をご紹介します。 指定文字列を含まない一行を検索【オススメ】 ^(?!.*VALUE).+$ ※VALUEを検索したい文字列にして下さい。 指定文字列(複数指定)を含まない一行を検索 ^(?!.*(VALUE1|VALUE2)).+$ ※VALUEを検索したい文字列にして下さい。 条件を増やす場合は”|VALUE”を続けて指定して下さい。 指定文字列から始まらない一行を検索 ^(?!VALUE).+$ ※VALUEを検索したい文字列にして下さい。 指定文字列で終わらない一行を検索 ^(?!.*VALUE$).
# encoding: UTF-8 str = "Hello" if str == "Hello" then puts("文字列はHelloです") else puts("文字列はHelloではありません") end このサンプルでは変数に格納された文字列と「Hello」と言う文字列が完全に一致しますので「文字列はHelloです」が出力されます。 このように完全に一致しているかどうかを調べるだけならば == メソッドを使うことで判定ができます。では次に対象の文字列に「e」で始まり「o」で終わる文字列が含まれているかどうかを調べるにはどうすればいいでしょうか。 このような条件ですと、一致する文字列は数限りなく存在します。例えば次のような文字列に一致します。
下記、正規表現は本当に簡単なチェックで、厳密なチェックをしたい場合は別途検索エンジンなどで調べた方がいいでしょう。参考として、PHPでメールアドレスかどうか調べる方法や、こちらのページで紹介されているようなメールアドレスの正規表現が存在します。 あくまで簡易なので、厳密な正規表現を書きたい方は、小飼弾さんのブログを参照するのが良いかもしれません→メールアドレスの正しい正規表現 <?php $text = "mail@mail.com"; if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $text)) { echo "正しいメールアドレスかもしれません"; } else { echo "正しくないメールアドレスではないかもしれません"; } ?> <?php
preg_replace( string|array $pattern, string|array $replacement, string|array $subject, int $limit = -1, int &$count = null ): string|array|null パラメータ pattern 検索を行うパターン。文字列もしくは配列とすることができます。 PCRE 修飾子 も使えます。 replacement 置換を行う文字列もしくは文字列の配列。 この引数が文字列で、pattern 引数が配列の場合、 すべてのパターンがこの文字列に置換されます。 pattern および replacement のいずれもが配列の場合、各 pattern は 対応する replacement に置換されます。 もし、replacement 配列の要素の数が pattern 配列よりも少
正規表現って「regex」?それとも「regexp」?に対する回答が秀逸だと話題に 2015 2/21 「正規表現」とは文字列の集合を一つの文字列で表現する方法のこと。多くのプログラミング言語で使用できるほか、"正規表現検索"をサポートしているアプリケーションも数多くあるので、開発者以外でもその名を耳にしたことがある方は多いとおもいます。 ところで、"正規表現"は英語では「Regular Expression」なので、「regex」または「regexp」と略されることが多いのですが、はたしてどちらが正解なのでしょうか。 Which is the correct shorthand - “regex” or “regexp”というStackoverflowの質問でベストアンサーに選ばれているのは、 /regexp?/ です。クエスチョンマークは空文字にマッチするので、「regex」または「r
PHPで正規表現を使うとき、「preg_match_all」をよく使います。 今回は、「preg_match_all」を使ったサンプルを記載していきたいと思います。 正規表現サンプル <?php $buf = '<a href="sample.com"></a>'; $ptn = "/href=\"(.*)\"/i"; preg_match_all($ptn, $buf, $aryDatas); print_r($aryDatas); ?> 正規表現サンプルの実行結果 「$aryDatas」配列の中に、正規表現で指定した内容が出力されます。「(.*)」で指定した部分は、配列番号の1番目「$aryDatas[1][0]」に格納されます。また、特定のタグ要素部分の値を取得したいときは、「(.*)」または「(.*?)」で取得できます。 「$buf」の要素が改行されているときは、上記の方法で取得が
正規表現は、複雑な検索でパターンを指定する強力な方法です。 このセクションでは、正規表現の照合に使用できる関数と演算子について説明し、正規表現の操作に使用できる特殊文字と構造の一部を例とともに示します。 セクション3.3.4.7「パターンマッチング」も参照してください。 MySQL では、Unicode の国際コンポーネント (ICU) を使用した正規表現サポートが実装されています。ICU は完全な Unicode サポートを提供し、マルチバイトセーフです。 (MySQL 8.0.4 より前では、MySQL は Henry Spencer による正規表現の実装を使用していました。これはバイト単位で動作し、マルチバイトセーフではありません。 正規表現を使用するアプリケーションが実装の変更の影響を受ける方法の詳細は、正規表現の互換性に関する考慮事項 を参照してください。) expr NOT R
プログラムで文字列に対して何か操作する時に正規表現を使う機会は多いと思う。しかし正規表現は複雑怪奇でちゃんと理解するのは大変だろう。 Atom であれば regex-railroad-diagram というプラグインを使う事で記述した正規表現の動作をグラフィカルにチェックする事ができ、開発が捗るだろう。 regex-railroad-diagram このプラグインを使うとソースコード中の正規表現にカーソルを合わせると画面下部に正規表現がどのように動くのかというダイアグラムが表示される。 正規表現のパースに失敗したらエラーメッセージも出る。 一時的に不要であれば設定もしくは ctrl-alt-o のショートカットキーで無効化/有効化を切替できる。 プログラム内で正規表現を確認するのに良いプラグインだと思う。
正規表現を使って漢字を表す方法を毎回、忘れてしまい、その都度、調べています。 調べた結果をまとめてみました。今回はJavaScriptの場合です。 正しくない方法 JavaScriptの正規表現はUnicode(UTF16)で判定される。 最近のJavaScriptではエンコードに関わらずUnicodeが使われるらしい。 「charset=shift_jis」としてもUnicodeで判定される。 charCodeAtで表示されるコードはUnicodeによるものである。 ネットで調べると正規表現で漢字を「亜-熙」と指定する方法が紹介されている。 「亜」U+4E9C 「熙」U+7199 これはシフトJISによる順序なので、JavaScriptでは使えない。 例えば、次のようにJavaScriptで「一」を調べるとマッチしない。 「一」U+4E00 であるので、「一」<「亜」<熙」となってしまう
フラグは、次の値を任意の組み合わせで指定できます。 g グローバルなマッチ i 大文字・小文字の無視 m 複数行に渡るマッチ 正規表現、RegExp: https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/RegExp 置換文字列 対象の文字列 test1@example.com test2@example.com test3@example.com test4@example.com test5@example.com 結果
文字列が数字のみで構成されているかのチェックは簡単ですが、数値として正しいかどうかのチェックは複雑です。専用の関数が用意されている言語もありますが、細かい動作(空文字の場合どうなるかなど)が不明確だったりするので、自前で用意するのが確実だと思います。で、そのチェック関数で使用する正規表現(自然数用と整数用)を書いてみました。 自然数 /^[1-9][0-9]*$/ 整数 /^[+-]?([1-9][0-9]*|0)$/ 整数の方は少しわかりづらいので、Rubyで適当にテストコードを書きました。 #!ruby ok_values = ["0", "+0", "-0", "10", "1234"] ng_values = ["-", "+", "++0", "+-0", "--0", "00", "01", "3B"] logs = [] ARGV.each do |arg| logs <<
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く