我正在创建一个小函数,它能够修改下面的两行
precision highp float;
highp float intensity;
对此:
precision highp float;
lowp float intensity;
所以实际上我不想修改默认的精度修饰符。我还想考虑如果 precision 和 highp 之间有空格怎么办,如下所示:
precision /*more white spaces*/ highp float;
我想将 \s+ 写入正则表达式之外的部分
((?<!\bprecision\s+)(highp\s+float))
但据我所知,Boost Negative Look Beyond 不支持这一点,这就是它向我抛出运行时错误的原因。
解决办法是什么?
你可以使用
\bprecision\s+highp\s+float(*SKIP)(?!)|highp\s+float
请参阅 正则表达式演示。
这个想法是匹配字符串中不需要的部分并跳过它,然后才匹配其他上下文中需要的部分。