「Java」正規表現(*)で直前の文字が0個以上を判定する

2020年10月20日

説明
「.*」は 0文字以上の任意の文字列
Javaコード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.arkgame.study;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SekiHoDemo {
// 直前の文字が1個以上
public static final String regPt = "[a-z].*";
public static void main(String[] args) {
String strA = "TestARK";
String strB = "45678";
// 大文字小文字無視
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();
}
}
package com.arkgame.study; import java.util.regex.Matcher; import java.util.regex.Pattern; public class SekiHoDemo { // 直前の文字が1個以上 public static final String regPt = "[a-z].*"; public static void main(String[] args) { String strA = "TestARK"; String strB = "45678"; // 大文字小文字無視 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(); } }
package com.arkgame.study;

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

public class SekiHoDemo {
      // 直前の文字が1個以上
      public static final String regPt = "[a-z].*";

      public static void main(String[] args) {
            String strA = "TestARK";
            String strB = "45678";
            // 大文字小文字無視
            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「TestARK」が正規表現「[a-z].*」にマッチします。
文字列B「45678」が正規表現「[a-z].*」にマッチしません

Java

Posted by arkgame