1

/[abcd]/、、、/(ab|cd)/およびを持つことができます/[^wxyz]/。なぜだめですか/(^wx|yz)/

どうやら、次のように、機能を他の機能と一緒にまとめるだけで、まったく同じ効果を実現できるようです/(?!wx|yz)../

では、この機能をネイティブでサポートしないのはなぜでしょうか? 根本的な理由はありますか?

4

2 に答える 2

2

それで、それが(^wx|yz)意味することを想像してみてください - あなたが明らかに意図しているように - 「wxでもyz」でもない2文字のシーケンス。どういう(^vwx|yz)意味ですか?vwxそれは「どちらでもない2 文字または 3 文字のシーケンス」という意味でしょうyzか? それは、" ではない、またはで始まらない3 文字のシーケンス、または"である 2 文字のシーケンスのいずれかを意味しますか?vwxyzyz

文字クラス表記の威力[...]— 範囲a-zをサポートできるもの、否定をサポートできるものなど— は、常に単一の文字に一致することです。その制限を取り除くとすぐに、これらが何を意味するのかが明確ではなくなります。

于 2012-09-21T17:29:52.247 に答える
1

の振る舞いはどうなると思います/(^wx|yz)/か?私には、空の文字列があなたが提案している「否定された代替」を満たすように思えます。同じ数の文字に一致することを期待している場合、可変長の正規表現を使用する否定された代替はどうですか?

ここで私が理解しようとしているのは、否定された代替はあいまいすぎて実装できないということです。それを行う最も明白な方法は、とにかく幅がゼロのアサーションであるため、単に を使用できます(?!...)

于 2012-09-21T17:28:25.513 に答える