Stringクラスを使用しての正規表現
正規表現は、文字列のパターンを表現したものです。
例えば、「3桁の数字」を表す正規表現であれば「[0-9]{3}?」と書きます。
桁数などの指定
X => [0-9]などの文字クラスやパターン。
「[0-9]?」であれば、数字が1回、または0回を意味する。
最長一致数量子
X? X、1または0回
X* X、0回以上
X+ X、1回以上
X{n} X、n回
X{n,} X、n回以上
X{n,m} X、n回以上、m回以下
最短一致数量子
X?? X、1または0回
X*? X、0回以上
X+? X、1回以上
X{n}? X、n回
X{n,}? X、n回以上
X{n,m}? X、n回以上、m回以下
強欲な数量子
X?+ X、1または0回
X*+ X、0回以上
X++ X、1回以上
X{n}+ X、n回
X{n,}+ X、n回以上
X{n,m}+ X、n回以上、m回以下
論理演算子
XY Xの直後にY
X|Y XまたはY
(X) X、前方参照を行う正規表現グループ
文字クラス
詳細はJavaDocにあります。
文字クラス
[abc] a、b、またはc (単純クラス)
[^abc] a、b、c以外の文字(否定)
[a-zA-Z] a - zまたはA - Z (範囲)
[a-d[m-p]] a - dまたはm - p: [a-dm-p] (結合)
[a-z&&[def]] d、e、またはf (交差)
[a-z&&[^bc]] a - z (bとcを除く): [ad-z] (減算)
[a-z&&[^m-p]] a - z (m - pを除く): [a-lq-z] (減算)
全てではありませんが、よく使うものをあげます。
<文字列を削除>
replaceAll(正規表現, 変更文字);
public static void main(String[] args) { "a1a2a3B4B5B".replaceAll("[1-5]",""}; // aaaBBB "a1a2a3B4B5B".replaceAll("a[1-5]",""}; // B4B5B "a1a2a3B4B5B".replaceAll("[a-zA-Z]",""}; // 12345 }
matches(正規表現)は上と同じような処理をするのですがTrue or Falseを返却します。
public static void main(String[] args) {
"a1a2a3B4B5B".matches("[1-5]"}; // True
"a1a2a3B4B5B".matches("a[1-5]"}; //True
"a1a2a3B4B5B".matches("[a-zA-Z]"}; //True
"a1a2a3B4B5B".matches("[6-9]"}; //False
}
文字列の判定
文字列が「数字」 + 「四則計算の記号」 + 「数字」の形担っているか判定する
String inStr = "1 + 1"; if (inStr.matches("[0-9].*[0-9]")) { System.out.println("計算部分の文字列"); } else { System.out.println("計算式ではない"); }
実際に動かしてみたとき
String#matches()を実行してみる
関連ページ一覧
Eclipse セットアップ
- Java Install Eclipse〜開発ツールのインストール〜
- TensorFlow C++環境〜EclipseにCDTをインストール〜
- Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
- Eclipse Meven 開発手順〜プロジェクトの作成〜
- Java OpenCV 環境セットアップ(on Mac)
- Eclipse SceneBuilderを追加する
- JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
Java Basic一覧
- Java Basic Level 1 〜Hello Java〜
- Java Basic Level2 〜Arithmetic Calculate〜
- Java Basic Level3 〜About String class〜
- Java Basic Level 4〜Boolean〜
- Java Basic Level 5〜If Statement〜
- Java Basic Summary from Level1 to 5
- Java Basic Level 6 〜Traning of If statement〜
- Java Basic Level8 〜How to use for statement〜
- Java Basic Level 8.5 〜Array〜
- Java Basic Level 9〜Training of for statement〜
- Java Basic Level 10 〜While statement 〜
- Java Basic Swing〜オブジェクト指向〜
- Java Basic Swing Level 2〜オブジェクト指向2〜
- サンプル実装〜コンソールゲーム〜
- Java Basic インターフェース・抽象クラスの作り方
- Java Basic クラスとは〜Step2_1〜
- Java Basic JUnit 〜テストスイートの作り方〜