LoginSignup
1
0

More than 5 years have passed since last update.

String文字列の検索条件の正規表現の*に改行が含まれるケースの置換

Last updated at Posted at 2016-12-22

データをXMLで持っている時にDOMなどのXML Objectに読ませないでデータを消したい場合によくStringでの置換が使われていた。
その時の話である。

消したいタグを以下のように置換していた。

    String xmlStringData = getXMLfile();
    xmlStringData = xmlStringData.replaceAll("<ABB000001.*?</ABB00001>", "");

消えないということがあった。調査を進めるうちにタグ間のデータが文字列であり正規表現の"*"に想定する箇所に改行データが入る場合があったからだ。

この場合PatternのDOTALLモードを使っって処理をした。

import java.util.regex.Pattern;

    String xmlStringData = getXMLfile();
    xmlStringData = Pattern.compile("<ABB000001.*?</ABB00001>", Pattern.DOTALL).matcher(xmlStringData).replaceAll("");

無事置換できタグを削除できた。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0