ひたすら列挙
※覚えている限りを列挙するので間違っている場合もあるかも
特殊文字
特殊文字そのものとマッチさせたい場合、以下のように「\」をつけてエスケープさせる必要があります。
\\ :\そのもの
\. :.そのもの
\( :(そのもの
\) :)そのもの
\^ :^そのもの
\$ :$そのもの
\[ :[そのもの
\] :]そのもの
\| :|そのもの
\* :*そのもの
\+ :+そのもの
\? :?そのもの
\n :改行
\s :スペース
\t :タブ
特殊文字の説明
\ :エスケープ
. :ワイルドカード(全ての種類の文字1文字にマッチ)
():括弧内の条件でマッチした文字列を取り出せる
^ :行の前方とマッチ
$ :行の後方とマッチ
[]:範囲に含まれる文字とマッチ
| :|の左の文字列または右の文字列とマッチ
* :*の左側の文字/正規表現0つ以上とマッチ
+ :+の左側の文字/正規表現1つ以上とマッチ
? :?の左側の文字/正規表現0~1つとマッチ
\n:改行とマッチ
\s:半角/全角スペースとマッチ
\t:タブとマッチ
{2}:"{"の直前のパターン2文字にマッチ
{2,4}:"{"の直前のパターン2~4文字にマッチ
\u$1:"(...)"にマッチした文字列を大文字に変換する
\l$1:"(...)"にマッチした文字列を小文字に変換する
その他
[09]:0か9の文字1つとマッチ
[0-9]:0~9の文字1つとマッチ
[^0-9]:0~9以外の文字1つとマッチ
[0-9a-zA-Z]:0~9、a~z、A~Zの文字1つとマッチ
[^0-9a-zA-Z]:0~9、a~z、A~Z以外の文字1つとマッチ
.*:文字0つ以上とマッチ
.+:文字1つ以上(可能な限り長い文字列)とマッチ
例)対象「a1b1c」
正規表現「^.+1」は対象の「a1b1」にマッチ
.+?:文字1つ以上(可能な限り短い文字列)とマッチ
例)対象「a1b1c」
正規表現「^.+?1」は対象の「a1」にマッチ
ab|12:「ab」または「12」とマッチ
(.+):括弧で囲まれた文字列を取り出す
例)対象「a1b1c」
正規表現「^(..)(..)」は対象の「a1b1」にマッチ
(1つめのカッコは「a1」に、2つめのカッコは「b1」にマッチ)
カッコで囲まれた文字列を置換後の文字列に出力したい場合は「$」+数字を使用する。
数字は左側のカッコから順に1,2,3...と付与される。
例の場合であれば、置換後の表現を「$2$1」とした場合、置換処理後の対象文字列は「b1a1c」となる。
例)元の文字列 :aaabbbccc
マッチパターン:^(.*?)(b+)
置換パターン :$2$1
置換後文字列 :bbbaaaccc
練習
問題1
文字列の先頭に"A"を挿入します
・置換前
abc
efg
・置換後
Aabc
Aefg
・マッチングパターン(前方に一致)
^
・置換パターン
A
問題2
文字列の後ろに"A"を挿入します
・置換前
abc
efg
・置換後
abcA
efgA
・マッチングパターン(後方に一致)
$
・置換パターン
A
問題3
連続する"-"(ハイフン)を、1つの"-"に置換します
・置換前
a----------b--c
e-----f-----g
・置換後
a-b-c
e-f-g
・マッチングパターン(1文字以上の"-"が連続する可能な限り長い文字列に一致)
-+
・置換パターン
-
問題4
最初にマッチしたできるだけ多くの数字だけ削除する
・置換前
a112b255c1e
114a
・置換後
ab255c1e
a
・マッチングパターン
^(.*?)(\d+)
・置換パターン
$1
問題5
最後にマッチしたできるだけ多くの数字だけ削除する
・置換前
a112b255c1e
114a
・置換後
a112b255ce
a
・マッチングパターン
(\d+)(\D*?)$
・置換パターン
$2
最終更新:2013年12月08日 00:00