検索する時、置換する時、便利です。仕事効率化のためにも覚えて損はしない
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]などはどの範囲を指すのはわかります。
[!-/:-@≠\[-`{-~]
半角記号だけを抽出
[^!-~]
半角以外などの組み合わせも可能です。
^ , $ | 行の先頭、末尾で終わる文字を指定 |
---|---|
[...] | マッチする複数の候補をあげる(.か.か.か) |
[^...] | 否定する文字を指定(...以外) |
. | ドットの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 ,