gpt4 book ai didi

php - 过滤数字,除非它们在花括号之间

转载 作者:行者123 更新时间:2023-12-04 05:58:18 26 4
gpt4 key购买 nike

考虑以下字符串:

$text = "Dat foo 13.45 and $600 bar {70} and {8}";

我需要在 $text 中标记所有数字,除非它们在花括号之间。我现在有这个:
echo preg_replace("([0-9]+(?:\.[0-9]+)?)","{NUMBER:$0}",$tweet);

输出:
Dat foo {NUMBER:13.45} and ${NUMBER:600} bar {{NUMBER:70}} and {{NUMBER:8}}

但是,所需的输出是:
Dat foo {NUMBER:13.45} and ${NUMBER:600} bar {70} and {8}

其中 { 和 } 之间的数字被忽略。是否可以扩展正则表达式以省略花括号或者这里需要另一种解决方案?

任何帮助将不胜感激 :-)

最佳答案

尝试使用 lookaheads/lookbehinds查找没有 {} 的数字.

注意:确保将正则表达式括在分隔符中(例如 / )。

echo preg_replace("/(?<!{)([0-9]+(?:\.[0-9]+)?)(?!})/","{NUMBER:$0}",$tweet);

演示: http://codepad.org/7ai0px2i
(?<!{)表示“前面没有 {”,和 (?!})表示“后面没有 }”。

关于php - 过滤数字,除非它们在花括号之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9235020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com