这里非常基本的东西,尝试使用正则表达式和PHP从这个字符串中拉出数字 14.5 ,但我似乎无法使语法正确。此外,该数字是动态的,可能并非总是十进制,但此处的目标是尝试在单词Weight:
和</li>
之间拉一个数字:
<ul>
<li>Manufacturer: something</li>
<li>Model: 1216D101</li>
<li>Condition: New</li>
<li>Dimensions: 12" x 16"</li>
<li>Sold by the Dozen</li>
<li>Weight: 14.5 Lbs.</li>
</ul>
这就是我到目前为止所做的一些尝试,但仍然不断下降:
if (preg_match("/\Weight:\(\d+)\.(\d*?)\<\/li>/", $desc, $WEIGHT) == true)
{ echo $WEIGHT[0]; }
答案 0 :(得分:3)
试试这个:
if (preg_match('/Weight: (\d+(\.\d+)?)/', $desc, $matches)) {
echo $matches[1];
}
答案 1 :(得分:1)
试试这个正则表达式:
/Weight: ((?:\d+)(?:\.\d*)?)/
匹配的号码将在$WEIGHT[1]
。
如果您不想捕获.
等数字中的123.
:
/Weight: ((?:\d+)(?:\.\d+)?)/
答案 2 :(得分:0)
preg_match('<li>Weight: (\d+)\.?(\d+)?.+</li>', // ...
应该诀窍
答案 3 :(得分:0)
如果您只想匹配数字整数或小数
if (preg_match('/^(\d+(\.\d+)?)$/',$num)) echo "$num is integer or decimal";