質問

以下の正規表現が一致しない理由を

私は疑問に思って。

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";

とあなたは私が何を意味するかわかります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top