【问题标题】:PHP: Text Processing preg_match functionPHP:文本处理 preg_match 函数
【发布时间】:2016-06-07 06:14:48
【问题描述】:
<?php
$eqn1="0.068683000000003x1+2.046124y1+-0.4153z1=0.486977512";
preg_match("/\b[0-9]*\b/",$eqn1,$vx1);
echo "X1 is: $vx1[0]";
?>

谁能告诉我,如何将 x1 的值(即 0.068683000000003)存储在变量 $vx1 中?

输出为:

X1 is: 0

【问题讨论】:

  • 内嵌粘贴您的代码。一些指向任意站点的链接不是的替代品。谢谢。
  • 请告诉我们您遇到的什么错误。不要在谜语中写一个问题,给我们所有详细信息。
  • 您需要将您的正则表达式更新为/^[0-9]\.[0-9]*/ 以获得值0.068683000000003

标签: php regex preg-match pcre text-processing


【解决方案1】:

1)每句后加分号;
2) 使用 echo "X1 is:" $vx1[0];而不是 echo "X1 is: $vx1[0]";

<?php
   $eqn1="0.068683000000003x1+2.046124y1+-0.4153z1=0.486977512";

   preg_match("/\b[0-9]*\b/",$eqn1,$vx1);
   echo "X1 is:" .$vx1[0];

【讨论】:

  • 请花一些时间来进行适当的格式化。谢谢。
  • 这将返回php语法错误“语法错误,意外'$vx1'(T_VARIABLE),期望','或';'”不会吗?
  • 现在echo命令有语法错误,字符串连接要求操作数之间有....
【解决方案2】:

语句后缺少分号,必须修改 echo 语句:

<?php
$eqn1 = "0.068683000000003x1+2.046124y1+-0.4153z1=0.486977512";

preg_match("/\b[0-9]*\b/", $eqn1, $vx1);
echo "X1 is: " . $vx1[0];

【讨论】:

  • Check this。您的回答没有给出 OP 在他的问题中建议的输出
【解决方案3】:

你的正则表达式只考虑整数,你的第一个数字是小数。

这是一种完成工作的方法,您要查找的号码在第 1 组中:

$eqn1 = "0.068683000000003x1 + 2.046124y1 + -0.4153z1 = 0.486977512";
preg_match("/^(\d+\.\d+)/", $eqn1, $vx1);
echo "X1 is: ", $vx1[1], "\n";

输出:

0.068683000000003

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多