私はこのコードを、私が維持しなければならないコードスニペットを持っています。 「テスト」として正規表現の文字列をパラメータ/トークンに置き換えてください。
String number = "1";
String value = "test";
String output = "";
output = value.replaceAll("\\Q{#}", number);
output
滞在の価値と私はこのコードが行うことになっているものを推測することができます:number
の値が値であるものは何でもに追加する必要があります。たぶんこのような何か:test1
または値を完全に番号で置き換えます。
\\Q
は、\\E
まですべてを引用する正規表現オプションですが、\\E
はありません。とにかく何もしていないし、何かを監督すればいいのだろうか?
正規表現は単に '{#}'と一致します。あなたの 'value'が' test {#} 'なら、' {#} 'はその番号に置き換えられます。 [このデモ](https://ideone.com/Zizftn)を参照してください。 '\\ E'はクォーテーションを止めるだけです。見つからなければ、パターン全体が引用されます。それだけです。 –
AFAIK '#'は正規表現では特殊文字ではないので、Java正規表現が '\ Q'を理解していると仮定すると' value'には存在しないリテラル文字列 '{#} 'が検索されます。あなたの推測は間違っています: 'replaceAll'は' match 'を 'number'に置き換えます。最後に何かを追加したい場合は、入力の最後に一致する必要があります。 '$'という式を使うだけです。 – Thomas
投稿に質問が表示されません。何を探していますか? –