Search code examples
regexnon-greedy

regular expression non greedy matching


I need a regular expression that matches the shortest string between "$" and "|$"

Example test string:

'bla bla$bla bla $bla bla|$bla bla bla'

regular expression:

/\$(.*?)\|\$/

i get

'bla bla $bla bla'

but i need bla bla

Has anyone an idea how to accomplish this?


Solution

  • Use a negated character class:

    \$([^$]*)\|\$