2017-06-06 5 views
0

xml文字列に二重引用符を特定の場所にのみ追加しようとしています。java regex-特定の単語を持たない特定のインデックスを取得する

ここでは、XMLコンテンツ

<opr:sec name=display> 
    <opr:fld name=fieldName>Value1</opr:fld> 
    <opr:fld name=someName>value2</opr:fld> 

の例のように、私は二重引用符を追加する必要があります。name = fieldNameにとフィールド名は、それぞれの行異なっています。

最初の二重引用符は、私は>記号を使用すると思うが、でFLDを避けるために必要

前に、しかし、終了二重引用符のためにする必要が名=を使用して簡単です終わり。私はここ

答えて

1

はあなたが欲しいものを行うための簡単な方法である前は、特定のテキストを持っていないことを手紙はRegex方法


使用この正規表現:
name=([^>]*)>
そしてによってそれを置き換える:あなたは、キャプチャブロックを使用する3つのブロックに自分のラインを分割し、作品から、それを再構築することができ
name="$1">

+0

感謝します明確かつ高速な応答のために – Benius

+0

@ベニウス:いつでも!私の答えについてはちょっと何か:あなたが引用したいフィールドの中に '>'があるとうまくいかない。これがあなたの場合、私は私の答えを更新することができます。 – Gawil

+0

必要ありません。 – Benius

1

String line = "<opr:fld name=fieldName>Value1</opr:fld>"; 
String regex = "(.*name=)(.*)(>.*>)"; 
Pattern pattern = Pattern.compile(regex); 
Matcher matcher = pattern.matcher(line); 
matcher.matches(); 
String result = matcher.group(1) + "\"" + matcher.group(2) + "\"" + matcher.group(3); 
System.out.println(result); 
関連する問題