初めに
投稿者が使用することになった正規表現を目的別にまとめます。正規表現についての解説ではなくこんな条件を指定したいをまとめたものですのでご注意ください。
基本的な正規表現について
基本的な正規表現については以下を参考にしてください。
(1)特定の文字・文字列を含まないそれ以前を指定する正規表現
特定の文字・文字列を含まないそれ以前を指定する正規表現についてです。
(.+)(?="特定の文字・文字列")
例えば、以下のようなファイル名とが拡張子(."特定の文字列")で囲われているデータがあると想定します。
Test1.java
Test2.sql
Test3.java
Test4.java
Test5.sql
このとき、「Javaのファイル名のみ」を指定したいときの正規表現は以下のようになります。
(*)(?=\.java)
上記の指定結果です。
Test1
Test3
Test4
(2)特定の文字・文字列を含むそれ以前の文字列を指定したい
特定の文字・文字列を含むそれ以前の文字列を指定する正規表現についてです。
(.*)(?="特定の文字列")
例えば、文字列を「/」で区切っているデータがあると想定します。
ABCDEF/abcdef
このとき、「ABCDEF/」を指定したいときの正規表現は以下のようになります。
(.*)(?=/)
上記の指定結果です。
ABCDEF/
(3)特定の文字・文字列を含むそれ以降を指定する正規表現
("特定の文字・文字列".*)
例えば、以下のような名前と敬称が「(敬称)」で囲われているデータがあると想定します。
田中(君)
佐藤(さん)
このとき、「(敬称)」を指定したいときの正規表現は以下のようになります。
(\(.*)
上記の指定結果です。
(君)
(さん)
(4)特定の文字・文字列を含まないのそれ以降の文字列を指定したい
特定の文字・文字列を含まないのそれ以降の文字列を指定する正規表現についてです。
(?<="特定の文字・文字列")(.*)
例えば、以下のような名前と年齢を「:」で区切っているデータがあると想定します。
田中:10歳
佐藤:30歳
このとき、「年齢」を指定したいときの正規表現は以下のようになります。
(?<=:)(.*)
上記の指定結果です。
10歳
30歳
(5)年月日時間のフォーマットを指定したい
ミリ秒を含まない年月日時間のフォーマットを指定する正規表現についてです。
YYYY-MM-DD hh:mm:ss
ミリ秒を含まない年月日時間のフォーマットを指定する正規表現は以下のようになります。
[0-9][4]-[0-9][2]-[0-9][2] [0-9][2]:[0-9][2]:[0-9][2]
[\d][4]-[\d][2]-[\d][2] [\d][2]:[\d][2]:[\d][2]
ミリ秒を含む年月日時間のフォーマットを指定する正規表現についてです。
YYYY-MM-DD hh:mm:ss.sss
ミリ秒を含む年月日時間のフォーマットを指定する正規表現は以下のようになります。
[0-9][4]-[0-9][2]-[0-9][2] [0-9][2]:[0-9][2]:[0-9][2]+(?:\.[0-9]+)?
[\d][4]-[\d][2]-[\d][2] [\d][2]:[\d][2]:[\d][2]+(?:\.\d+)?
(6)カッコ内を指定したい
例えば、以下のような「{}」で区切っているデータがあると想定します。
{あいうえお}、{かきくけこ}。{さしすせそ}
このとき、「?????」を指定したいときの正規表現は以下のようになります。
(?<={).*?(?=})
(7)符号(+,-)付き整数を指定したい
符号(+,-)付き整数を指定する正規表現についてです。(符号はついていてもいなくても可)
[+-]?\d+
[+-]?[0-9]+
(8)符号(+,-)なし実数を指定したい
符号(+,-)なし実数を指定する正規表現についてです。
\d+(?:\.\d+)?
[0-9]+(?:\.[0-9]+)?
(9)符号(+,-)あり実数を指定したい
符号(+,-)あり実数を指定する正規表現についてです。(符号はついていてもいなくても可)
[+-]?\d+(?:\.\d+)?
[+-]?[0-9]+(?:\.[0-9]+)?
(10) 特定の文字・文字列を含まない行を指定したい
特定の文字・文字列を含まない行を指定する正規表現についてです。
^(?!.*"特定の文字・文字列").*$
例えば、Java、SQL、Rubyのファイル名のデータがあると想定します。
Test1.java
Test2.sql
Test3.java
Test4.rb
Test5.java
このとき、「Javaを除くファイル名」を指定したいときの正規表現は以下のようになります。
^(?!.*\.java).*$
上記の指定結果です。
Test2.sql
Test4.rb
(11)前方で特定の文字・文字列が一致している行を指定したい
前方で特定の文字・文字列が一致している行を指定する正規表現についてです。
^"特定の文字・文字列".*$
例えば、以下のような文字列データがあると想定します。
東京タワー
東京スカイツリー
リトル東京
大阪万博
このとき、「前方に東京がつく言葉」を指定したいときの正規表現は以下のようになります。
^東京.*$
上記の指定結果です。
東京タワー
東京スカイツリー
(12)後方で特定の文字・文字列が一致している行を指定したい
後方で特定の文字・文字列が一致している行を指定する正規表現についてです。
.*"特定の文字列"$
例えば、以下のような文字列データがあると想定します。
東京タワー
東京スカイツリー
リトル東京
大阪万博
このとき、「後方に東京がつく言葉」を指定したいときの正規表現は以下のようになります。
*東京$
上記の指定結果です。
リトル東京
(13) 特定の文字・文字列1と特定の文字・文字列2を含まない間の文字特定の文字・文字列を指定したい
特定の文字・文字列1と特定の文字・文字列2を含まない間の文字特定の文字・文字列を指定する正規表現についてです。
(?<="特定の文字・文字列1").*?(?="特定の文字・文字列2")
例えば以下のような「[]」に囲われた文字列データがあるとします。
[こんにちは][こんばんわ][さようなら]
このとき「[]」の中身を指定したいときの正規表現は以下のようになります。
(?<=\[).*?(?=\])
上記の指定結果です。
おはようこんにちはさようなら