きっかけ
こういうときに使いたいって思ったので、記録として残しておこうかと。
詳細
文字列分割を試みたのだが、予期した状況と違っていた。
いちいち確認用のクラスを作るのは面倒くさかったので、この際、jshell使ってみるとかと思い使った。
やりたかったことは、"遅く起きた。だから、授業に遅刻した。"
っていう文を、。
文字含んだ状態での分割がしたかった。
まずは、初期の実装。
"遅く起きた。だから、授業に 遅刻した。".split("。")
これだと、結果は、["遅く起きた", "だから、授業に 遅刻した"]
になって、予期した結果と違った。
いろいろ調べた結果、後読みってのが使えればいいという結論に至った。
"遅く起きた。だから、授業に 遅刻した。".split("(?<=。)")
これで、["遅く起きた。", "だから、授業に 遅刻した。"]
にできた。
結論
- 正規表現は面倒くさい
- 使って知識を得るものに対してjshellは有効
言葉の説明が難しいものが世の中にはあって、それを試すのにjshllは有効そう。
それが顕著にでるのが、正規表現な気がしますわ。
正規表現がやりたいことを満たしているのか、実行してみないと分からないからな。。。
サンプル見るけど、本当に理解したのとあっているか、実行してみないと分からない。
正規表現って、もっと簡単に覚えられないものなのか?
使っていると、知識が足りないとかなり苦労する。
参考サイト
[JAVA] 文字列を区切って区切り文字も含める | ぷすぅ~ぷすぅ~
[コラム] 正規表現の先読み/後読みは、どう考えても名前が悪いので、呼称禁止令を出してルックと気軽に呼んでみませんか。 - Qiita