この正規表現が何をするのか、誰かが私に例/説明を与えることができますか:
(?![#$])
これは<%(?![#$])(([^%]*)%)*?>
、ASP.NET がサーバー側のコード ブロックを解析するために使用するものの一部です。式の 2 番目の部分は理解できますが、最初の部分は理解できません。
ドキュメントを確認したところ(?! ...)
、ゼロ幅の負の先読みを意味することがわかりましたが、それが何を意味するのか完全にはわかりません。これまでに試した入力はすべて機能しているよう<% ... %>
に見えます-なぜこの最初の部分式がそこにあるのだろうか。
編集:
ASP.NET 式をピックアップするためのこの式を思いつきました:<%.+?%>
次に、Microsoft が作成したものを見つけました (上記の完全な式が問題です)。私の表現の方がはるかに単純に見えるのに、なぜ彼らがその特定の表現を選んだのかを理解しようとしています. (私の表現が、MS の境界条件が無視しない特定の境界条件を無視するかどうかを確認しようとしています。)