String[] operatorList = { "name", "first_name", "last_name", "city" };
String originalString = "city=Houston^ORlast_name=Cervantsz^ORfirst_name=John^name=don";
for (String opElement : operatorList) {
if (originalString.contains(opElement)) {
String tempStr = originalString.replace(opElement, "user." + opElement);
originalString = tempStr;
}
}
System.out.println("originalString " + originalString);
user.city =ヒューストン^ ORlast_user.name = Cervantsz^ORfirst_user.name =ジョン^ user.name =ドン
とき私は名前を "user.name"と置き換えようとしています。 "last_name"の名前は "last_user.name"に、first_nameはfirst_user.nameに置き換えようとしています。
しかし、 "name"を "user.name "と" last_name "を" use " r.last_name " 、" first_name "に" user.first_name "と入力します。
助けてください。
これは既知の問題です。 '' name'の代わりに ''(?<!first_)(?<!last_)name "のような正規表現を使うか、単語境界を持つ正規表現ベースの正規表現を作って正規表現を使用してリストを作成し、置き換えます。 –
私の意見では間違っています。ステップ1 - ラインを鍵のペアに分割します。ステップ2 - ループの鍵ペア。ステップ3 - keyapirsをkeyとvalueに分割します。ステップ4 - のキーの交換は、1つ1つ後ろにキーペアです。 5 - 結果を文字列に戻します。ステップ6 - 利益 – degr
あなたのコードの使い方によっては、単純に '(^ | \ ^(?: OR)?)(\ w *?name \ w *?)(?==)'を使用し、 '$ 1user。$ 2' – ctwheels