Home > Mobile >  Regexp: find all occurences on same string inside brackets
Regexp: find all occurences on same string inside brackets

Time:10-11

i already few days trying write some regexp for replacing all : inside brackets, pls help me, so i have string:

render('MyBundle:Default:index.html.twig')
or render('MyBundle::Default::index.html.twig')

how i can get all : and replace it with / ? i trying something like:

render\(.*([:])

but it's find only last :

CodePudding user response:

In a general case, it will look like

(?:\G(?!^)|render\(')[^':]*\K: 

See the regex demo. Remove the last if you need to replace each : with a /.

Details:

  • (?:\G(?!^)|render\(') - render\(' or the end of the previous match
  • [^':]* - zero or more chars other than ' and :
  • \K - match reset operator that discards the text matched so far
  • : - (the only text that is finally put into the match value and eventually replaced) one or more colons.
  • Related