正規表現の先読み/後読みについて
正規表現を扱っていると「先読み/後読み」というものが出てきます。
私自身正規表現の使用頻度はそこまで高くないので、使うタイミングで分からないことがあれば都度調べているのですが、毎回「先読み/後読み」について調べている気がするのでここでまとめておこうと思います。
先読み/後読みとは
特定の文字列を検索する際に、対象の文字列の直前/直後に指定した文字列があるかどうかを判定する仕組みです。
これだけ読むと分かりにくいですが、具体例の前に一旦先読み/後読みの種類を紹介しておきます。
名前 | 書き方 | 意味 |
---|---|---|
肯定先読み | (?=pattern) | 直後にpatternがある |
否定先読み | (?!pattern) | 直後にpatternが無い |
肯定後読み | (?<=pattern) | 直前にpatternがある |
否定後読み | (?<!pattern) | 直前にpatternが無い |
肯定先読みの例
肯定先読みは検索対象の文字列の後ろに特定のパターンがあるかどうかでマッチする/しないの判定を行います。
例えば
I love cats and I love dogs
という文字列の中からloveという文字列(ただしloveの後ろにcatが来る)を探したい場合
love(?= cats)
という正規表現を使います。これによりlove dogs
の部分は排除して検索することが可能です。
補足となりますが、正規表現には文字にマッチするものと位置にマッチするもの2種類があります。
文字にマッチするものは例えば.
などです。
位置にマッチするものしては行頭^
や行末$
などのメタ文字があります。(アンカー
と呼ぶそうです)
先読みと後読みも実はアンカーの1種です。
先程の表で直後にpatternがある
や直前にpatternが無い
といった記述をしましたがが、この直前や直後というのは検索文字列の直前や直後の位置のことです。
I love cats and I love dogs
でいうとlove
とcat
の間の位置にマッチする、ということになります。
フィルムカメラはじめました
本記事が『喫茶高砂』の初投稿になります。
初投稿の場合、普通は自己紹介だったりブログの方向性なんかを記事にすることが多いのかと思いますが、それらはブログの挨拶欄に記載してしまったのでやりません。気が向いたら後から記事にするかもしれませんが。
ということでタイトルにある通り、フィルムカメラをはじめた話をしたいと思います。
最近フィルムカメラを買いました。olympus om-1という機種です。デジカメは2つ持っているのですが、フィルムカメラを購入したのは初めてです。
余談ですが、何年か前にウィリアムエグルストンという写真家の作品が好きになり、同じような写真が撮りたくてRICOHのGRⅱというカメラを買ったはいいものの、フィルムカメラじゃないとあの味が出せないことを後から知って後悔した苦い思い出があります。
さて、今回購入したolympus om-1というカメラは1972年に発売されたカメラで、とても古いものになります。1980年代まで製造販売されていたそうです。
名機でありユーザーも多いようで、ネットでも中古がたくさん取引されているようでした。ちなみに私もネットで購入しました。
olympus om-1を選んだ理由としては以下のようなものがあります。
- 見た目がかっこいい
- 名機であり今でもメインのカメラとして使用している人が多い
- ネット上に情報が多い
- フルマニュアルでありカメラ操作の勉強になりそう
- 価格が比較的安い
中でも一番の決め手は見た目の魅力でした。The フィルムカメラといった見た目が所有欲を満たしてくれています。
購入後試し撮りをしてみました。