「Java」正規表現式({n,})で直前の文字がn個以上を判定するサンプル

2020年10月20日

説明
{n,}直前の文字がn個以上
例b{2,} 「bb」,「bbb」,「bbbb」…
Javaコード

package com.arkgame.study;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SekiHoDemo {
      // 直前の文字がn個以上
      public static final String regPt = "y{2,}";

      public static void main(String[] args) {
            String strA = "yyy222";
            String strB = "456yyYY";
            // 大文字小文字無視
            Pattern pt = Pattern.compile(regPt, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
            if (testFunc(pt, strA) == true) {
                  System.out.println("文字列A「" + strA + "」が正規表現「" + regPt + "」にマッチします。");
            } else {
                  System.out.println("文字列A「" + strA + "」が正規表現「" + regPt + "」にマッチしません");
            }
            if (testFunc(pt, strB) == true) {
                  System.out.println("文字列B「" + strB + "」が正規表現「" + regPt + "」にマッチします。");
            } else {
                  System.out.println("文字列B「" + strB + "」が正規表現「" + regPt + "」にマッチしません");
            }

      }

      public static boolean testFunc(Pattern pattern, String target) {
            // 正規表現判定
            Matcher mt = pattern.matcher(target);
            return mt.find();
      }
}

結果
文字列A「yyy222」が正規表現「y{2,}」にマッチします。
文字列B「456yyYY」が正規表現「y{2,}」にマッチします。

Java

Posted by arkgame