3

私は正規表現があまり得意ではありません。誰かが私を置き換えるのを手伝ってくれますか

<MessageParam name="0" desc="Source Queue" />

<MessageParam name="0" desc="Source Queue"></MessageParam>

正規表現を使用する

4

4 に答える 4

12

一致する正規表現:

(<\s*MessageParam[^>]*)/\s*>

交換用ストリング:

$1></MessageParam>

キャラクターをエスケープする必要があるかもしれません\(その前に余分なものを追加\してください)。

>属性の値にが表示されておらず、XMLが有効であると想定しています。

より一般化されたバージョン:

一致する正規表現:

<\s*([^\s>]+)([^>]*)/\s*>

交換用ストリング:

<$1$2></$1>

これについては、私が行ったすべての仮定がわかりません。ただし>、属性の値にはまだ表示されておらず、XMLは有効であると思います。

于 2012-12-25T05:58:20.093 に答える
5

正規表現

<(\w+)(.+?)/>

と置換する

<$1$2></$1>
于 2012-12-25T06:24:25.503 に答える
0
public static void format(String xmlNode) {
    Pattern patt = Pattern.compile("(<MessageParam[^>]*)(\\s*/>)");
    Matcher mattcher = patt.matcher(xmlNode);
    while (mattcher.find()){
        String result = mattcher.replaceAll("$1></MessageParam>");
        System.out.println(result);
    }
}
于 2012-12-25T07:50:19.103 に答える
0

これは私のために働いた:

xmlString.replaceAll("<(\\w*:*\\w+)/>", "<$1></$1>");
于 2021-12-17T16:18:24.770 に答える