きり丸の技術日記

技術・エンジニアのイベント・資格等はこちらにまとめる予定です

【Java】ドットでSplitしたい時は\\.で区切る

タイトルだけで終わる出落ち記事。
30分引っかかったので、1時間で記事にして残す。

方法

ドット(.)は正規表現特殊文字
ですので、ドットをエスケープする必要がある。

String[] versions = "1.0.10".split("\\.");

本当にやりたかったこと

  1. Gitでmasterにpushした時、Jenkinsを動かす。
  2. すべて正常終了した時に、Jenkinsでパッチバージョンを上げたタグをpushする。

なぜすぐに気付けなかったか

JavaではCheckStyleを入れているので、IDEがサジェスチョンしてくれる。自動変換で目的どおりの正規表現にしてくれます。

ただ、JenkinsはGroovyですので、ローカルに環境構築をしていませんでした。ですので、下記URLで動作確認をしていたが、サジェスチョンは行われないので正しい正規表現を求めるのに時間がかかりました。

https://groovyconsole.appspot.com/


ドットが正規表現特殊文字だということには早期に気付きました。"\."バックスラッシュひとつだけしか付けた場合はSyntax Errorになります。

ただし、当然上記のサイトでは実行前のコンパイルエラーに気付くことはできません。


また、最初にググって出てきたサイトはPatternクラスを使う方式だったので、Jenkinsでのimport方法がよくわからずに地味に混乱しました。

import java.util.regex.Pattern;
Pattern.quote(".")

終わりに

JVMであることを頭に置いて、Javaでやろうと思ったら簡単です。ただ、普段触らないからと言ってJenkinsだから、Groovyだから、と変な先入観があると引っかかってしまいますね。

今後も、変な先入観を考えずに技術に向き合っていきたいです。


この記事がお役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。

f:id:nainaistar:20201013111905p:plain