マニッシュシャルマ:
私のような文字列を持っています " case 1 is good [phy][hu][get] my dog is [hy][iu][put] [phy][hu][gotcha]"
私は、その結果の文字列をしたいです " case 1 is good get my dog is [hy][iu][put] gotcha "
基本的に、私はフォーマットのすべてのサブストリングが望む[phy][.*][.*]
最後の(第3)角括弧の内容に置き換えられます。
私は、この正規表現パターンを使用してみました"\[phy\]\.[^\]]*]\.\[(.*?(?=\]))]"
が、私は、各一致するサブストリングを反復処理することなく、私の問題を解決する方法を考えることができません。
Wiktor第Stribiżav:
あなたは使用することができます
\[phy\]\[[^\]\[]*\]\[([^\]\[]*)\]
とを交換してください$1
。参照してください。正規表現のデモとRegulexグラフ:
細部
\[phy\]
-[phy]
サブ\[
-[
文字[^\]\[]*
-以外の0以上の文字[
と]
\]
-]
文字\[
-[
文字([^\]\[]*)
-グループ1のキャプチャ($1
マッチがゼロまたはそれ以外の複数文字に、その値は、置換パターンである)[
と]
\]
-]
文字
Javaの使用のデモ
String input = "case 1 is good [phy][hu][get] my dog is [hy][iu][put] [phy][hu][gotcha]";
String result = input.replaceAll("\\[phy]\\[[^\\]\\[]*]\\[([^\\]\\[]*)]", "$1");
System.out.println(result);
// => case 1 is good get my dog is [hy][iu][put] gotcha