文字列では、私は、その第三の正方形のブロック列と括弧内のすべての単語を置き換えたいです

マニッシュシャルマ:

私のような文字列を持っています " 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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=203015&siteId=1