1

私は正規表現が苦手で、文字列を置き換えるのに助けが必要です。

String str = "Name_XYZ_";
       str = "XYZ_NAME_";

"Name_"では、どうすれば上記の2つ"_NAME_"の文字列を空の文字列に置き換えることができますか?条件は"Name"どのような場合でも可能であり、index 0または任意のインデックスである可能性がありpreceded by "_"ます。

これまでに試しましたが、

String replacedString = str.replaceAll("(?i)Name_", ""); // This is not correct.

これは宿題ではありません。私はそのような処理を必要とするXMLファイルに取り組んでいます。

4

2 に答える 2

1
String replacedString = str.replaceAll("(?i)(?:^|_)name_", "");

あなたは近かった。あなたがしなければならないことは、文字列の先頭(with )に固定する そこにアンダースコアを要求することです。とにかく、パターンを大文字と小文字を区別せずに扱う場合は、なぜ小文字と大文字を混在させるので、私もに変更しました。これは単なる最適化(そして良い習慣)であることに注意してください。この場合、不要なキャプチャを抑制します。 name^Namename?:

正規表現のスキルを向上させたい場合は、このチュートリアルを強くお勧めします。

于 2012-12-07T23:04:17.777 に答える
-1

Javaの代わりに.NETの正規表現を使用していますが、そのコンテキストで(_?Name_)は機能するはずです。

于 2012-12-07T23:06:34.153 に答える