正規表現の使用例

1989 ワード


』』』では、次の数字のペアを分析します.
asf123,343asdf
af1234  ,555asdf
as5556,   88fsda
666     ,    9999
dfd666ff,ffff9999fdd
dfd666  ,ffff9999fdd

コード:
	String dataText = "asf123,343asdf/r/n    af1234  ,555asdf/r/n s5556,   88fsda/r/n 666     ,    9999/r/n dfd666ff,ffff9999fdd/r/n dfd666  ,ffff9999fdd";
        Pattern p = Pattern.compile("(\\d+)[ \t]*,[ \t]*(\\d+)");
        Matcher m = p.matcher(dataText);
        while (m.find()) {
            System.out.println(StringUtil.toInt(m.group(1)) + "," + StringUtil.toInt(m.group(2)));
        }

結果:
666,9999

 
>>Javaコードのaaaを置換String()からStrUtil.toStr(aaa)
				dayVo = new DayVo(dSales.toString(), dGm.toString(), dNgm
						.toString(), dOplgm.toString(), dTgm.toString());
				wTDVo = new WTDVo(wSales.toString(), wGm.toString(), wNgm
						.toString(), wOplgm.toString(), wTgm.toString());
				mTDVo = new MTDVo(mSales.toString(), aveMSales.toString(), mGm
						.toString(), mNgm.toString(), mOplgm.toString(), mTgm
						.toString());

aaaを検索toString()正規表現
(\w+)\s*.toString\(

StrUtilを置換します.toStr(aaa)正規表現
StrUtil.toStr\(\1

ここでは1で最初のキャプチャグループを取り、複数ある場合は2,3.....取りに来ます.
置換後のコード:
	dayVo = new DayVo(StrUtil.toStr(dSales), StrUtil.toStr(dGm), StrUtil.toStr(dNgm), StrUtil.toStr(dOplgm), StrUtil.toStr(dTgm));
        wTDVo = new WTDVo(StrUtil.toStr(wSales), StrUtil.toStr(wGm), StrUtil.toStr(wNgm), StrUtil.toStr(wOplgm), StrUtil.toStr(wTgm));
        mTDVo = new MTDVo(StrUtil.toStr(mSales), StrUtil.toStr(aveMSales), StrUtil.toStr(mGm), StrUtil.toStr(mNgm), StrUtil.toStr(mOplgm), StrUtil.toStr(mTgm));