正規表現を用いたエスケープについて
テスト1{=test1-string1.test2-string2}-終わり
上記のような文字列があった場合に
中括弧内の-にのみマッチするような正規表現を考えております。
現在以下の通りに正規表現を組んでおりますが、
([^}]*\{=[^.}]*\.[^}]*)(-)([^}]*\})
.以降のみの-にのみマッチしてしまいます。
テスト1{=test1-string1.test2-string2}-終わり
やりたいことは以下の通りです。
テスト1{=test1-string1.test2-string2}-終わり
実装はこちらです。
java
1String regex = "([^}]*\\{=[^.}]*\\.[^}]*)(-)([^}]*\\})"; 2Pattern p = Pattern.compile(regex); 3Matcher m = p.matcher(string); 4while(m.find()) { 5 string = m.replaceAll("$1\\\\-$3"); 6}
{}内の-にマッチするような正規表現がわかる方がいらしましたら、
ご教示いただけないでしょうか。
回答2件
あなたの回答
tips
プレビュー