パターン{\{\{(.*?)}}
と一致しない単一の{、 '}'中かっこをエスケープしたい。 (つまり、最初に '{'がエスケープされるはずです。){{{abc}}
誰かが私のために正規表現を書くのを助けてくれる?与えられた正規表現パターンと一致しない文字をエスケープする
2
A
答えて
2
注:これは、あなたの入力文字列にはエスケープシーケンスを持っていない場合に動作します。
あなたは、あなたがを交換するために必要なものへの代替をスキップして追加する必要があるものと一致する「ラッパー」正規表現を作成し、キャプチャことがあります。しかし、最初の\{\{
が文字列の最初の{{
と一致するため、正規表現は{{{a}}
と完全に一致するため、正規表現は適切ではありません。怠惰なドットマッチングを無効文字クラス[^{}]*
に置き換えて、{
と}
以外の0個の文字にのみ一致させる必要があります。
それからちょうどMatcher#appendReplacement
を使用します。
String s = "{{{abc}}";
StringBuffer result = new StringBuffer();
Matcher m = Pattern.compile("(\\{\\{[^{}]*}})|[{}]").matcher(s);
while (m.find()) {
if (m.group(1) != null) {
m.appendReplacement(result, m.group(1));
} else {
m.appendReplacement(result, "\\\\" + m.group());
}
}
m.appendTail(result);
System.out.println(result.toString()); // Demo output.
あなたは `\ {\ {[^ {}] *}}`パターンに一致しないものを括弧をエスケープしたいことを意味しJava demo
0
正規表現は次のようになります。
\{\{[^{}]+\}\}
関連する問題
- 1. 与えられた正規表現と一致する文字列内の文字を数える方法
- 2. Rスタイルの正規表現で一致するエスケープ文字
- 3. 文字列または正規表現のリテラルにない正規表現と一致する正規表現
- 4. のJava正規表現パターンを認識しない一致する「エスケープ+」
- 5. 正規表現パターンが入力パターンと一致しない
- 6. 正規表現と一致しない文字と一致する正規表現
- 7. 特定の文字列パターンに一致する正規表現
- 8. 正規表現文字列に一致するパターン
- 9. 文字列の末尾が一致する正規表現パターン
- 10. 正規表現エスケープ文字
- 11. 与えられた正規表現に一致するランダムシーケンスを生成する
- 12. 文字列パターンを含む正規表現除外一致
- 13. 一致する正規表現パターン{{.... ....}}
- 14. 正規表現:言葉与えられた文字の1
- 15. 正規表現のような文字列が与えられ
- 16. パターンの後の正規表現の一致文字
- 17. 正規表現正規表現一致文字列
- 18. PHP正規表現でエスケープされた値が正しく一致しない
- 19. Pythonの正規表現がパターンと一致しない
- 20. は、与えられた正規表現
- 21. 正規表現文字列が一致?
- 22. の正規表現に一致する正規表現。エスケープされていないとき?
- 23. 正規表現と似た別の文字列と一致しない場合にのみ一致する文字列か正規表現か?
- 24. 正規表現パターン[#[#hello]#] javascriptで一致
- 25. 正規表現の一致パターン
- 26. PowerShellの正規表現は、文字列が与えられた文字列
- 27. エスケープ文字を含むJavaパターンの正規表現
- 28. 特殊文字と一致する正規表現パターン!@#$%^&* validatorJSルールの場合
- 29. PHP正規表現が一致しないポリッシュ文字
- 30. 正規表現の最初の文字が一致しない
を参照してください。ところで、文字列にすでにエスケープシーケンスがありますか? –