エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

jshellを使いたくなった瞬間と正規表現

きっかけ

こういうときに使いたいって思ったので、記録として残しておこうかと。

詳細

文字列分割を試みたのだが、予期した状況と違っていた。

いちいち確認用のクラスを作るのは面倒くさかったので、この際、jshell使ってみるとかと思い使った。

やりたかったことは、"遅く起きた。だから、授業に遅刻した。" っていう文を、 文字含んだ状態での分割がしたかった。

まずは、初期の実装。

"遅く起きた。だから、授業に 遅刻した。".split("。")

これだと、結果は、["遅く起きた", "だから、授業に 遅刻した"] になって、予期した結果と違った。 いろいろ調べた結果、後読みってのが使えればいいという結論に至った。

"遅く起きた。だから、授業に 遅刻した。".split("(?<=。)")

これで、["遅く起きた。", "だから、授業に 遅刻した。"] にできた。

結論

  • 正規表現は面倒くさい
  • 使って知識を得るものに対してjshellは有効

言葉の説明が難しいものが世の中にはあって、それを試すのにjshllは有効そう。
それが顕著にでるのが、正規表現な気がしますわ。

正規表現がやりたいことを満たしているのか、実行してみないと分からないからな。。。
サンプル見るけど、本当に理解したのとあっているか、実行してみないと分からない。

正規表現って、もっと簡単に覚えられないものなのか?
使っていると、知識が足りないとかなり苦労する。

参考サイト

正規表現の先読み・後読みを極める! - あらびき日記

[JAVA] 文字列を区切って区切り文字も含める | ぷすぅ~ぷすぅ~

[コラム] 正規表現の先読み/後読みは、どう考えても名前が悪いので、呼称禁止令を出してルックと気軽に呼んでみませんか。 - Qiita