以下に示すような値を含む文字列があります。特定のcustomerIdを含むhtmlimgタグを新しいテキストに置き換えたい 。期待どおりの出力が得られない小さなJavaプログラムを試しました。プログラム情報は次のとおりです。
私の入力文字列は
String inputText = "Starting here.. <img src=\"getCustomers.do?custCode=2&customerId=3334¶m1=123/></p>"
+ "<p>someText</p><img src=\"getCustomers.do?custCode=2&customerId=3340¶m2=456/> ..Ending here";
正規表現は
String regex = "(?s)\\<img.*?customerId=3340.*?>";
入力文字列内に入れたい新しいテキスト
編集開始:
String newText = "<img src=\"getCustomerNew.do\">";
編集終了:
今私はやっています
String outputText = inputText.replaceAll(regex, newText);
出力は
Starting here.. Replacing Text ..Ending here
しかし、私の期待される出力は
Starting here.. <img src=\"getCustomers.do?custCode=2&customerId=3334¶m1=123/></p><p>someText</p>Replacing Text ..Ending here
予想される出力では、customerId=3340を含むimgタグのみがReplacingTextに置き換えられていることに注意してください。出力で両方のimgタグが置き換えられる理由がわかりませんか?