C#の正規表現で\ bを使用すると、動作しませんか?
-
20-09-2019 - |
質問
以下の正規表現が一致しない理由を
私は疑問に思って。
string query = "\"1 2\" 3";
string pattern = string.Format(@"\b{0}\b", Regex.Escape("\"1 2\""));
string repl = Regex.Replace(query, pattern, "", RegexOptions.CultureInvariant);
私は単語の境界文字を削除する場合(\ b)のpattern
から、それがうまく一致していることに注意してください。これをトリップされる可能性がありますは「\ B」についての何かがありますか?
解決
それがある場合、一致ではありませんB \ので、
引用は、単語文字ではありません。引用符の前に何の単語文字はありません。そう、引用符の前に、単語の文字と非単語の文字の間には移行はありません。だから、不一致ます。
あなたのコメントからは、文字列から単語の文字を削除しようとしています。それを行うための最も簡単な方法は、空の文字列で\w
を置き換えることになります:
string repl = Regex.Replace(query, "\w", "", RegexOptions.CultureInvariant);
他のヒント
あなたは空白を期待しています。 それはものを見つけるされていません。 交換してください。
string query = "\"1 2\" 3";
タグ付き
string query = "\" 1 2 \" 3";
とあなたは私が何を意味するかわかります。
所属していません StackOverflow