/[abcd]/、、、/(ab|cd)/およびを持つことができます/[^wxyz]/。なぜだめですか/(^wx|yz)/
どうやら、次のように、機能を他の機能と一緒にまとめるだけで、まったく同じ効果を実現できるようです/(?!wx|yz)../。
では、この機能をネイティブでサポートしないのはなぜでしょうか? 根本的な理由はありますか?
/[abcd]/、、、/(ab|cd)/およびを持つことができます/[^wxyz]/。なぜだめですか/(^wx|yz)/
どうやら、次のように、機能を他の機能と一緒にまとめるだけで、まったく同じ効果を実現できるようです/(?!wx|yz)../。
では、この機能をネイティブでサポートしないのはなぜでしょうか? 根本的な理由はありますか?
それで、それが(^wx|yz)意味することを想像してみてください - あなたが明らかに意図しているように - 「wxでもyz」でもない2文字のシーケンス。どういう(^vwx|yz)意味ですか?vwxそれは「どちらでもない2 文字または 3 文字のシーケンス」という意味でしょうyzか? それは、" ではない、またはで始まらない3 文字のシーケンス、または"である 2 文字のシーケンスのいずれかを意味しますか?vwxyzyz
文字クラス表記の威力[...]— 範囲a-zをサポートできるもの、否定をサポートできるものなど— は、常に単一の文字に一致することです。その制限を取り除くとすぐに、これらが何を意味するのかが明確ではなくなります。
の振る舞いはどうなると思います/(^wx|yz)/か?私には、空の文字列があなたが提案している「否定された代替」を満たすように思えます。同じ数の文字に一致することを期待している場合、可変長の正規表現を使用する否定された代替はどうですか?
ここで私が理解しようとしているのは、否定された代替はあいまいすぎて実装できないということです。それを行う最も明白な方法は、とにかく幅がゼロのアサーションであるため、単に を使用できます(?!...)。