内容へ移動
八寿のナレッジベース
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
it技術:正規表現
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 正規表現 ====== ===== 概要 ===== 正規表現とは、文字列内で文字の組み合わせを照合するために用いられるパターンです。\\ 参照:[[https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions|正規表現]] 例えば携帯電話の番号\\ 090-1234-5678\\ 080-2011-0702\\ etc…\\ 3桁の数字-4桁の数字-4桁の数字\\ 正規表現を使うと、1つの正規表現で全ての電話番号が検索ができる。 <code> \d{3}-\d{4}-\d{4} </code> ※正規表現も複雑過ぎるのを書かれるとメンテナンス出来なくなるので、書いた人は自己満足出来るけど、後の人や2ヶ月後の自分のことを気にしないとね。 ===== 正規表現で使用する特殊文字 ===== 下記の特殊文字をメタ文字といいます。\\ メタ文字を単なる普通の文字として検索したい場合は、メタ文字の前に「\」を付加します。 <code> . ^ $ [ ] * + ? | ( ) </code> ===== 文字クラスの略記法 ===== 良く使われる文字クラスには省略記法が存在します。\\ * \w 単語構成文字 [a-zA-Z0-9_] * \W 非単語構成文字 [^a-zA-Z0-9_] * \s 空白文字 [ \t\r\n\f\v] * \S 非空白文字 [^ \t\r\n\f\v] * \d 10進数字 [0-9] * \D 非10進数字 [^0-9] * \h 16進数字 [0-9a-fA-F] * \H 非16進数字 [^0-9a-fA-F] これらの「空白」「数字」などは ASCII の範囲の文字のみを対象としています。 いわゆる「全角アルファベット」「全角空白」「全角数字」などは ここの空白、数字、には含まれません。 ===== 説明 ===== [slideshare id=14525756&doc=regularexpression-120930100316-phpapp02] ===== 覚えておくといいこと ===== ==== 最長マッチと最短マッチ ==== 「.*」 … なんでもいい文字の連続(最長)\\ 正規表現 JR.*駅\\ 対象文字 **JR静岡駅から浜松駅**まで\\ ※可能な限り合致するまでヒットする\\ 「.*?」 … なんでもいい文字の連続(最短)\\ 正規表現 JR.*?駅\\ 対象文字 **JR静岡駅**から浜松駅まで\\ ※可能な限り少ない回数でヒットする\\ ==== 後方参照 ==== 正規表現を使って置換をする場合、正規表現でマッチした内容をそのまま使用したい場合がある、その場合に後方参照を使用する。\\ 後方参照は、正規表現にて括弧で括られた分を「$」の後の数値を付けて「$1」などと記述する。 <code> 対象文字列 1234567890 正規表現 (\d\d\d\d)(\d\d)(\d\d\d\d) 置換文字列 $3-$1-$2 $1 = 1234 $2 = 56 $3 = 7890 結果 7890-1234-56 </code> ==== 含まない文字列 ==== Userを含まない行を抽出する。(?!.*対象文字列)を使う。 \\ [[http://www-creators.com/archives/1827|正規表現:文字列を「含まない」否定の表現まとめ]] <code> -- 複数行マッチのオプションとして「m」を付けている。 /^(?!.*User).*$/gm net use aaa /User aaaaa ヒットしない net use aaa xxxxx bbbbb ヒットする </code> ===== 参照 ===== * [[http://www.mnet.ne.jp/~nakama/|サルにもわかる正規表現入門]] * [[http://regexpal.com/|正規表現をブラウザ上で確認(regexpal)]] * [[http://nelog.jp/regular-expression-online-tools|ブラウザから手軽にチェックできる正規表現テストツールまとめ]] * [[http://tiri-tomato.hatenadiary.jp/entry/20111219/1324271441|正規表現でコマンドライン文字列を分割]] * [[https://qiita.com/yucatio/items/e980550814f66b3450dd|正規表現の可視化ツールRegulexを使おう!]]
it技術/正規表現.txt
· 最終更新: 2020/03/11 12:46 by
yajuadmin
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ