【问题标题】:Regexp: find all occurences on same string inside brackets正则表达式:查找括号内相同字符串上的所有匹配项
【发布时间】:2021-11-29 18:51:29
【问题描述】:

我已经几天尝试写一些正则表达式来替换括号内的所有 :,请帮助我,所以我有字符串:

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

我怎样才能得到所有 : 并用 / 替换它? 我尝试类似:

render\(.*([:])

但它只找到最后一个

【问题讨论】:

    标签: php regex pcre


    【解决方案1】:

    在一般情况下,它看起来像

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

    请参阅regex demo。如果您需要将每个: 替换为/,请删除最后一个+

    详情

    • (?:\G(?!^)|render\(') - render\(' 或上一场比赛结束
    • [^':]* - 除了': 之外的零个或多个字符
    • \K - 匹配重置运算符,丢弃目前匹配的文本
    • :+ - (最后放入匹配值并最终替换的唯一文本)一个或多个冒号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-15
      • 2023-04-02
      • 1970-01-01
      • 2017-08-25
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多