クラス名を基に処理する際、パッケージ名、クラス名を抽出したい場合があります。Javaでは匿名パッケージが許されるので、FQCNのクラス名を単純にピリオドで区切る方法ではうまくいかず、ちょっと一工夫が必要でした。
いろいろ悩んだ結果、現在の回答は以下の正規表現です。
(?:(.*)\.)?(.*)
- パッケージ名があれば、グループ1にマッチします。匿名パッケージの場合は空文字列になります。
- クラス名はグループ2にマッチします。
- 正規表現では、グループ化するために括弧を使いたいけれど、あとでキャプチャ対象にはしたくない場合に、(?: という記号を使います。