【发布时间】:2021-11-29 18:51:29
【问题描述】:
我已经几天尝试写一些正则表达式来替换括号内的所有 :,请帮助我,所以我有字符串:
render('MyBundle:Default:index.html.twig')
or render('MyBundle::Default::index.html.twig')
我怎样才能得到所有 : 并用 / 替换它? 我尝试类似:
render\(.*([:])
但它只找到最后一个:
【问题讨论】:
我已经几天尝试写一些正则表达式来替换括号内的所有 :,请帮助我,所以我有字符串:
render('MyBundle:Default:index.html.twig')
or render('MyBundle::Default::index.html.twig')
我怎样才能得到所有 : 并用 / 替换它? 我尝试类似:
render\(.*([:])
但它只找到最后一个:
【问题讨论】:
在一般情况下,它看起来像
(?:\G(?!^)|render\(')[^':]*\K:+
请参阅regex demo。如果您需要将每个: 替换为/,请删除最后一个+。
详情:
(?:\G(?!^)|render\(') - render\(' 或上一场比赛结束[^':]* - 除了' 和: 之外的零个或多个字符
\K - 匹配重置运算符,丢弃目前匹配的文本:+ - (最后放入匹配值并最终替换的唯一文本)一个或多个冒号。【讨论】: