Using non-greedy quantifiers with substitute()

21 views
Skip to first unread message

Felix Thibault

unread,
Mar 16, 2020, 3:38:16 PM3/16/20
to vim_use
I'm having problems with a plugin and I've narrowed it down to one line. If I write:
echo substitute("#|\nmulti-line comment\n|#","#|.*|#","","g")


the substitution happens like expected. But if I use a non-greedy quantifier I get the original string unchanged
echo  substitute("#|\nmulti-line comment\n|#","#|.\{-}|#","","g")



John Little

unread,
Mar 16, 2020, 6:31:58 PM3/16/20
to vim_use
You've used a double-quote string, which processes backslash characters, for the pattern. Either double the backslash, or use a single-quote string:


echo substitute("#|\nmulti-line comment\n|#",'#|.\{-}|#',"","g")

HTH, and regards,

John Little

Felix Thibault

unread,
Mar 16, 2020, 6:51:37 PM3/16/20
to vim...@googlegroups.com
Thank you so much- I had no idea about single quote strings.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/ac338094-581e-4b28-9598-7da9a0160b40%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages