【发布时间】:2012-04-08 04:33:17
【问题描述】:
试图抓取 (h)、(w) 和 (d) 前面的数字。这些是动态的,我无法获得它的语法:
<ul>
<li>Make: Mymake</li>
<li>Model: R-22GTF</li>
<li>Dimensions: 13.25" (h) x 20.13" (w) x 18.5" (d)</li>
<li>Sold Individually </li>
<li>Weight: 0 lbs.</li>
</ul>
if (preg_match("/Dimensions: ((?:\d+)(?:\.\d*)?)/", $desc, $DIMS) == true)
{ echo $DIMS[1];}
上面只返回13.25。我希望每个都有自己的数组或自己的变量。每个由 (h) 之前的数字、(w) 之前的数字和 (d) 之前的数字定义。
【问题讨论】:
-
听起来是研究正则表达式语法的好机会,因为这不是一件复杂或困难的事情。我建议尝试 learn 而不是跑到 SO 让其他人为你做这件事。
(?:告诉 PHP 您不想要捕获括号内的组。 -
有趣的是,我一直在寻找一个小时这是什么意思,谷歌无法帮助我解释。
-
请定义每个。然后注意子模式匹配在 PHP 中是有限的,您需要为每个要匹配的子组编写所有模式。
-
我试过 googledoesntwork.com 但它还没有启动 =p。顺便说一句,我一直在寻找“冒号在 REGEX 中的作用”这些网站都没有告诉我,不过感谢您为我搜索!
标签: php regex preg-match parentheses