入力文字列があります
これまたは「それまたは」または「これまたはそれ」
に翻訳する必要があります
|| これ || || 「それか」|| "これかそれか"
そのため、文字列内で文字列 ( または ) の出現を探し、それを別の文字列 ( || ) に置き換えようとします。次のコードを試しました
Pattern.compile("( or )(?:('.*?'|\".*?\"|\\S+)\\1.)*?").matcher("this or \"that or\" or 'this or that'").replaceAll(" || ")
出力は
|| これ || || 「それか」|| 'これ || それ'
問題は、一重引用符内の文字列も置き換えられたことです。コードに関しては、スタイルは単なる例です。パターンをコンパイルして、これが機能するようになったら再利用します。