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.