Java正規表現一例 - 正規表現で 英字/数字の分離
2010/01/22 17:36Update
Java言語の正規表現機能を利用して、英数字の文字列を英字と数字に分離させるサンプルです。
Java正規表現について
Java正規表現 概要
Java正規表現によくあるマッチ パターン
例えば、"abc123"という文字列があって、abcと123それぞれを取得しようとします。
実行結果:
abc:123
使いやすくするには、汎用化したほうがいいでしょう。
呼び出し側:
.
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
.
Sponsored Link
- Relative Articles
- Java開発及び実行環境の構築 | Linux篇 - (2008/08/31 20:34)
- Java開発及び実行環境の構築 | Windows篇 - (2008/08/31 21:18)
- 5分でJava Hello World! - (2008/08/31 22:13)
- Java言語の制御構文 - 条件分岐if/else/else if - (2008/10/01 21:30)
- Java言語の繰り返し制御構文 - for文 - (2008/10/03 18:22)
- Java言語の繰り返し制御構文 - do ... while文 - (2008/10/03 21:23)
- Java言語の繰り返し制御構文 - while文 - (2008/10/03 21:32)
- Java言語の基礎 - javacコマンドによるコンパイル - (2008/10/10 17:58)
- Java アクセス修飾子概要 - (2008/10/29 18:31)
- Javaアノテーション機能 概要 - (2009/02/12 13:06)