首页 > 解决方案 > {*or*} 的正则表达式(Laravel 5.7 升级的 PhpStorm)

问题描述

我正在升级到 Laravel 5.7,作为其中的一部分,我需要将orBlade 中的所有内容更新为??,无论它们被大括号({{ }}{!! !!})包围。我正在尝试在 PhpStorm 中使用 Regex 来查找所有此类实例(即{*or*},其中*可能是任意数量的任意字符)。

我该怎么做?

我自己确实尝试过,但我是 Regex 的新手,我的尝试可能非​​常糟糕:

/{[^!][or]}/

标签: phpregexlaravelphpstorm

解决方案


我不会使用正则表达式来尝试实现这一点,主要是因为本文中概述的原因它更深入地探讨了计算机理论。基本上正则表达式不能“记住”上下文开始标签,例如 {{ 或 {!! 将它们与结束标签配对;一个匹配你想要做的事情的正则表达式(找到 {{ something here }} 或 {!! something here, too !!} 也会匹配这个 {{ something wrong !!}。也就是说,你可以写你的自己的转换器,它将能够维护该上下文,或者通过手动执行繁重的工作。您还可以进行一些研究以找出是否其他人已经完成了它。但是,正则表达式可能是错误的工作的工具。


推荐阅读