Top > 正規表現


↓この呪文わかりますか?
^a.*[1-5]?.[^6-9]*?(x|z)$
少し覚えれば、この呪文が解けます!

^行の先頭
「^a」→ 「abc , aBC」
$行の末尾
「z$」→ 「adb.z , Abc-z 」
.任意の1文字
「.」→ 「a , A , あ , 。 ,」
*直前の文字が0回以上の繰り返し
「a*b」→「b , ab , aab」
+直前の文字が1回以上の繰り返し
「a+b」→「ab , aab」
?直前の文字が在るか無いか
「a?b」→「b , ab」
[ ]いずれか1文字
「[abc]」 → 「a , b , c」
[ - ]2つの文字コード間
「[a-z]」 → 「abcedfghijklmnopqrstuvwxyz」
[^ ]以外文字
「[^abc」」→ 「abc以外の文字」
( | )or条件
「(a|b)」→ 「a or b」
\d数字1文字
「\d」→ 「0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9」
\D数字以外1文字
「\D」→ 「0123456789以外の文字」
\tタブを指します
「\t」→ 「タブ」
\s半角スペースかタブか改行
「\s」→ 「半角スペース、タブ、改行」
\S空白以外の文字
「\S」→ 「空白以外」



ASCIIコードは以下のような順番

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

↑の文字から考えられる正規表現があります。
例えば、上に書いていますが、[0-9][A-z]などはどの範囲を指すのはわかります。

[!-/:-@≠\[-`{-~]

半角記号だけを抽出

[^!-~]

半角以外などの組み合わせも可能です。

CGI/Perlでのサンプル

^ , $ 行の先頭、末尾で終わる文字を指定
[...] マッチする複数の候補をあげる(.か.か.か)
[^...] 否定する文字を指定(...以外)
. ドットの1文字です。任意の1文字を表します。対象の文字数がわかっている場合に便利
i (オプション) 大文字、小文字の区別を行わない
時刻(12時間、24時間) 12時間、24時間表記の時刻を取得


プログラムの情報を取得したい時に使った正規表現をメモ

カタカナを取得

[ァ-ヴー-]+

半角カタカナを取得

[ヲ-゚-]+

デファインを取得

#define(\s|\t)+\w+(\s|\t)+\(*(\s|\t)*\d+(\s|\t)*\)*
 〇取得対象
  #define TEST ( 1) ←タブも含む
  #define TEST 1

コメントを取得

(/\*|//)(\s|\t)*(\w|\W)+(\s|\t)*\*/$
 〇取得対象
  /* テストテスト */
  /* テスト1 テスト2 */ ←タブも含む

関数を取得

(void|char|short|int|long|float)+(\s|\t)+\w+(\s|\t)*\(((\s|\t)*(void|char|short|int|long)+(\s|\t)+\w*(\s|\t)*,*(\s|\t)*){0,}[\)|\n](?!;)
 〇取得対象
  int func( char p1 , short p2 , int p3, long p4 ) ←タブも含む
  void func2 ( void )
  char func3( char p1 ,



Copyright © 2015 AchaPorutePiipo All Rights Reserved.