"[" "]"を文字列の一重引用符 "'"に置き換える正規表現

2017-06-08 13 views
0

こんにちは、私は正規表現を初めて使っています。 私はreplaceAll()方法で単一引用符'と角括弧[]を交換しようとしたこの"[" "]"を文字列の一重引用符 "'"に置き換える正規表現

"(NATIVE_WHERE_CLAUSE = 'UnitOfMeasure.MeasurementType=[Weight]' ) AND (NATIVE_RELATION_WHERE_CLAUSE = 'Reference_Name=[Nut to coolent oil]' )"

のような文字列を持っています。しかし、それは動作しませんでした。

角括弧[]を上記の文字列の一重引用符で置き換える正規表現となるものは誰でも手助けできますか?

+0

この式では、文字列に '... Type = 'Weight' 'というAND演算子が2つ生成されます。あなたはそれをしたいと思いますか? 'sed 'や' vimの内部では、 '#[\ [\]]/\\'#' '(':%s/[\ [\]/\\ '/ g') ')。 – LSerni

+0

[Java正規表現と一致する角括弧]の重複の可能性があります(https://stackoverflow.com/questions/43246115/java-regular-expression-matching-square-brackets) –

答えて

0

\\[\\][]を文字列に置き換えます。そして'

"(NATIVE_WHERE_CLAUSE = 'UnitOfMeasure.MeasurementType=[Weight]' ) AND (NATIVE_RELATION_WHERE_CLAUSE = 'Reference_Name=[Nut to coolent oil]' )".replace(new RegExp('\\[|\\]', 'g'), "'"); 

[]を置き換えるために、以下の使用が、それは2つの単一引用符、他の子として作成されます。それは動作しません。したがって、以下のようにエラーを回避するには、\'に置き換える必要があります。

"(NATIVE_WHERE_CLAUSE = 'UnitOfMeasure.MeasurementType=[Weight]' ) AND (NATIVE_RELATION_WHERE_CLAUSE = 'Reference_Name=[Nut to coolent oil]' )".replace(new RegExp('\\[|\\]', 'g'), "\\'"); 
関連する問題