Как работает регулярное выражение ‘(? <= #) [^ #] + (? = #)’?

У меня есть следующее регулярное выражение в программе на C #, и мне трудно понять это:

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

Я разобью это до того, что, я думаю, я понял:

(?<=#)    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 `?=`?

Так что проблема у меня заключается в?<= а также?< часть. Из чтения MSDN,?<name> используется для именования групп, но в этом случае угловая скобка никогда не закрывается.

Я не смог найти?= в документах, и поиск его действительно сложен, потому что поисковые системы будут в основном игнорировать эти специальные символы.

Ответы на вопрос(3)

Ваш ответ на вопрос