2007/03/04開始。ソフトウェア管理やDelerer SEの作者であるおにぎりくんの試行錯誤の記録です。
- [Vue.js]時計?タイムコードを表示するWebアプリ
- (2021/11/16)
- ポエム
- (2020/09/30)
- メトロノームアプリをリリース
- (2017/04/22)
- Sikulix勉強中:便利関数
- (2017/02/25)
- [JavaFX]学習メモ
- (2016/09/22)
私の使ってるJavaの統合開発環境EclipseにはFindBugsというプラグインが入っています。これは便利で、バグになりそうなあやしいコードには虫マークが付いて、「ここあやしいよ」的な感じで説明までしてくれます。
そして、今日は「このコードで使用されている正規表現は文法が間違っています。この文はPatternSyntaxExceptionのスローを招くでしょう。」という説明がされるあやしいコードが出てきました。コードはこんなんです。
String[] token = s.split("*");
アスタリスクで分けられたデータをString配列に代入したかったのです。しかし、このままコンパイル+実行をすると、大量のエラーがでてきました。
Dangling meta character '*' near index 0
そこで、Googleで検索しました。さすがGoogle、すぐいいサイトが見つかりました。英語ですが。
Developer Forums String Pattern Matching
読んでみると、この人はプラス文字を使おうとして私と同じエラーが発生して困ったらしく、それはプラス文字が正規表現の予約語なので違う意味の正規表現(しかも間違った文法)になってしまっていたからだと分かりました。予約語を使うためには\\を文字の前につければよいみたいです。
String[] token = s.split("\\*");
これでしっかり動きました。
PR
スポンサード・リンク
この記事にコメントする
フリーソフト指向::開発日記 by LapisCactus