[regexp] Meaning of '?' after '*'
by Michael Uplawski from LinuxQuestions.org on (#6HH5G)
Code:/\<!--(.|\s)*?-->/mMatches HTML-comments. The pattern has given me a hard time and the final version is partly copied from a code-example on the Web. I have added the multi-line option.
I see that it works with the HTML-files at my disposal, but do not understand the question-mark at this position after '*'. During my experiments, it had been my idea to match the closing '-->' greedily like in Code:/\<!--(.|\s)*(-->)?/m. At least I could claim to understand the ? here (probably don't either).
When I omit the question-mark, a script tries for an eternity to match something but I have never been patient enough to wait for a result. The first pattern above makes the routine return quasi immediately and had always been successful.
Thank you for any clarification.
I see that it works with the HTML-files at my disposal, but do not understand the question-mark at this position after '*'. During my experiments, it had been my idea to match the closing '-->' greedily like in Code:/\<!--(.|\s)*(-->)?/m. At least I could claim to understand the ? here (probably don't either).
When I omit the question-mark, a script tries for an eternity to match something but I have never been patient enough to wait for a result. The first pattern above makes the routine return quasi immediately and had always been successful.
Thank you for any clarification.