マリックはフラグを立て:
私は、以下の文字列から「(「'「「」、」」と)」交換する機能を置き換える使用しようとしています -
String foo = "('UK', 'IT', 'DE')";
私は、この操作を行うために以下のコードを使用しようとしています -
(foo.contains("('")?foo.replaceAll("('", ""):foo.replace("'",""))?foo.replaceAll("')",""):foo
しかし、そのようには失敗します -
java.util.regex.PatternSyntaxException: Unclosed group near index 2
私はここで何も足りませんか?
コンラートルドルフ:
replaceAll
かかる正規表現の検索パターンとしては。以来(
、正規表現での特殊文字で、それはエスケープする必要があります'\\('
。さらに、は必要ありませんcontains
テストは:
final String bar = foo.replaceAll("\\('", "") …
最後に、あなたは1つの正規表現の中に、すべての置換を組み合わせることができます。
final String bar = foo.replaceAll("\\(?'([^']*)'\\)?", "$1");
// Output: UK, IT, DE
これは、引用符なしでそのコンテンツを使用して文字列内の単一引用符で囲まれた部分の各発生を置き換えますし、それができるように(および廃棄)開閉括弧を取り巻くます。