PHP 做计算题

hiti8 2011-02-04 09:53:09
现在用
preg_match("/^(\d+(\\.\\d+)?)([+*\/\-])(\d+(\\.\\d+)?)$/", $str, $matches);
能匹配到1+1的形式
如果1+1+1就匹配不可

像google 你输入 1+1+1+1+1+1=? 他都能得出结果

这个程序该怎么写呢?怎么匹配?
...全文
95 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
komway 2011-02-09
先看一下编译原理吧。单纯是正则表达式实现很不现实
回复
skyaspnet 2011-02-06
[Quote=引用楼主 hiti8 的回复:]
现在用
preg_match("/^(\d+(\\.\\d+)?)([+*\/\-])(\d+(\\.\\d+)?)$/", $str, $matches);
能匹配到1+1的形式
如果1+1+1就匹配不可

像google 你输入 1+1+1+1+1+1=? 他都能得出结果

这个程序该怎么写呢?怎么匹配?
[/Quote]

使用:

$str='fdsfsaf1+1+1fdsafsaf';
preg_match_all("/1(\+1)+/", $str, $matches);
print_r($matches[0]);

//匹配结果为:Array ( [0] => 1+1+1 )


即可
回复
solu 2011-02-04
preg_match("/^(\d+(\.\d+)?)([+*\/\-](\d+(\.\d+)?))+$/", $str, $matches);
回复
相关推荐
发帖
PHP
创建于2008-08-27

1.9w+

社区成员

“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
申请成为版主
帖子事件
创建了帖子
2011-02-04 09:53
社区公告
暂无公告