1

http://regexhero.net/tester/でテスト済み

^(?!Bar$)
  • Foo一致する
  • Bar一致しません
  • FooBar一致する
  • BarBaz一致する
  • FooBarBaz一致する

ルート制約を設定するとき^(?!Bar$).*、同じ結果を得るにはを使用する必要があります。何故ですか?

4

1 に答える 1

3

最初の式は実際には文字列のどの部分も「カバー」していません。どちらも^(?!...)テストされた文字列の特定の位置 (アンカー) で一致することを確認してください (実際には、どちらも最初の同じ位置で一致を試み、すぐに失敗します)。

そして、これ^(?!Bar$).*は -- 実際にはすべての文字列を「カバー」します。それが違いだと思います。

于 2012-10-01T08:12:55.693 に答える