Wie funktioniert der reguläre Ausdruck "(? <= #) [^ #] + (? = #)"?

Ich habe den folgenden regulären Ausdruck in einem C # -Programm und habe Schwierigkeiten, ihn zu verstehen:

(?<=#)[^#]+(?=#)

Ich werde es auf das herunterbrechen, von dem ich denke, dass ich es verstanden habe:

(?<=#)    a group, matching a hash. what's `?<=`?
[^#]+     one or more non-hashes (used to achieve non-greediness)
(?=#)     another group, matching a hash. what's the `?=`?

Also das Problem, das ich habe, ist das?<= und?< Teil. Aus dem Lesen von MSDN,?<name> wird für die Benennung von Gruppen verwendet, aber in diesem Fall wird die spitze Klammer niemals geschlossen.

I konnte @ nicht find?= in den Dokumenten, und es ist wirklich schwierig, danach zu suchen, da Suchmaschinen diese Sonderzeichen meist ignorieren.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage