Java正規表現一例 - 正規表現で 英字/数字の分離

2010/01/22 17:36Update
TAGS: Java | 正規表現 | Pattern | Matcher | 文字列 | 英数字

Java言語の正規表現機能を利用して、英数字の文字列を英字と数字に分離させるサンプルです。

Java正規表現について
Java正規表現 概要
Java正規表現によくあるマッチ パターン

例えば、"abc123"という文字列があって、abcと123それぞれを取得しようとします。
//抜粋
    public static void main(String []args) {
        String patternRegex = "([A-Za-z]{1,})([0-9]*)?";
        Pattern pattern = Pattern.compile(patternRegex);
        Matcher matcher = pattern.matcher("abc123");
        
                        
        while(matcher.find()){
            String strword = matcher.group(1);
            String numword = matcher.group(2);
            
            System.out.println(strword + ":" + numword);
        }
    }
    


実行結果:
abc:123

使いやすくするには、汎用化したほうがいいでしょう。
public class StringUtils {
//抜粋
public static String [] splitEnNumStr(String expr) {
    String []ret = new String[2];
    String patternRegex = "([A-Za-z]{1,})([0-9]*)?";
    Pattern pattern = Pattern.compile(patternRegex);
    Matcher matcher = pattern.matcher(expr);

    if(matcher.find()){
        ret[0] = matcher.group(1);
        ret[1] = matcher.group(2);
    }
    
    return ret;
}

}


呼び出し側:
String []words = StringUtils.splitEnNumStr("abc123");
System.out.println(words[0] + ":" + words[1]);    //abc:123

words = StringUtils.splitEnNumStr("aBcDef1234");
System.out.println(words[0] + ":" + words[1]);    //aBcDef:1234

.

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments