1

次の正規表現が一致しないのはなぜだろうか。

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' について何かありますか?

4

2 に答える 2

3

引用符は単語の文字ではないため、\b がある場合は一致しません。引用符の前に単語文字はありません。したがって、引用符の前では、単語の文字と単語以外の文字の間の遷移はありません。したがって、一致しません。

あなたのコメントから、文字列から単語の文字を削除しようとしています。これを行う最も簡単な方法は\w、空の文字列に置き換えることです。

string repl = Regex.Replace(query, "\w", "", RegexOptions.CultureInvariant);
于 2010-03-15T18:08:41.603 に答える
0

あなたは空白を期待しています。それは見つけていません。交換

string query = "\"1 2\" 3";

string query = "\" 1 2 \" 3";

そして、あなたは私が何を意味するかを見るでしょう.

于 2010-03-15T18:04:37.197 に答える