- PR -

文字列挿入について

1
投稿者投稿内容
コージ
常連さん
会議室デビュー日: 2005/07/29
投稿数: 39
投稿日時: 2007-12-26 11:25
String.replaceAllを使用しマッチした文字列の直前に文字列を挿入するのは
どのようにしたらいいのでしょうか?

'$`'などあるみたいですがどのようにしたらいいのかわかりません。

やりたいことは以下です。

挿入前:testAtestBtestCtestD

testBとtestDの直前に文字列(****)を挿入(なんでもいい)

挿入後:testA****testBtestC****testD


よろしくおねがいします
なぎさ。
会議室デビュー日: 2007/12/21
投稿数: 9
お住まい・勤務地: カンサイ
投稿日時: 2007-12-26 12:56
初めまして。

replaceAllは正規表現を使うことになっていますので

環境 J2SE 6.0
String str = "testAtestBtestCtestD";
String rep = str.replaceAll("test[BD]", "****$0");
System.out.println(rep);

出力
testA****testBtestC****testD

testBとtestDに一致する部分を見つけ出し
****$0と置換する
$0は検索一致文字列になるので
testBに一致した場合は****testBと置換
testDと一致した場合は****testDと置換します。

正規表現がわかるようになると置換が楽しくなりますね。
初めのうちは正規表現対応のテキストエディタで慣れるのもいいかと思います。
エディタによっては\0とか$0とかアルゴリズムに応じた後方参照ですが
基本はだいたい同じですね。


以下蛇足
BBコード内で括弧[]を使う方法がわからない・・・

追記13:04
BBコード内括弧[]使えないみたいですね・・・
不便なような便利なような・・・

[ メッセージ編集済み 編集者: なぎさ。 編集日時 2007-12-26 13:03 ]
コージ
常連さん
会議室デビュー日: 2005/07/29
投稿数: 39
投稿日時: 2007-12-26 13:06
>なぎさ。さん

どうもありがとうございます。
さっそく試させて頂きました。
まさに自分が求めていた結果が出せました。

以前なら一文字ずつループで処理していたんですが
正規表現を使ったら便利ですね。

またご教授お願いします。
1

スキルアップ/キャリアアップ(JOB@IT)