-3

構文がエンコードされた文字列があります

"encodedProp:encodedValue OPERATOR encodedProp1:encodedValue1"

(演算子は、、、である可能性がありAND、Nペアがあります)。ORNOTprop:value

、、、、...はエンコードされた文字"encodedProp""encodedValue"です"encodedProp1""encodedValue1"

正規表現を使用して、をに置き換えたいのです":"" = "。また、左側の部分を。に、右側の部分を。に置き換える必要があり":"ます。"\"" + left_part + "\"""'" + right_part + "'"

上記の例では、置換後の文字列は次のようになります。

"\"encodedProp\" = 'encodedValue' OPERATOR \"encodedProp1\" = 'encodedValue1'"

これを行うために使用する必要がある表現は何ですか?

4

1 に答える 1

0

OK、問題が明確に定義されていないので、ここで手足に出かけますが、試してみましょう。

String resultString = subjectString.replaceAll(
    "(?x)(       # Match and capture in backreference number 1:\n" +
    " [^\\s:]+   #  one or more characters except spaces or colons\n" +
    ")           # End of capturing group 1\n" +
    ":           # Match a colon\n" +
    "(           # Match and capture in backreference number 2:\n" +
    " [^\\s:]+   #  one or more characters except spaces or colons\n" +
    ")           # End of capturing group 2", 
    "\"$1\" = '$2'");

これはその部分を完全に無視しOPERATORます。1つのコロンを含む文字のシーケンスを検索し、それらを一重引用符または二重引用符で囲み、途中でコロンを置き換えます。

于 2012-05-15T13:28:47.740 に答える