<strong class="tb-rmb-num"><em class="tb-rmb">¥</em>39.00</strong>
我试图只检索没有货币符号
的数字当前代码是
$ret = $html->find('strong[class=tb-rmb-num]');
echo $ret[0];
这将检索标记¥39.00建议请,谢谢。
In php:
$string = '¥39.00';
if(preg_match('/(['d'.]+)/', $string, $m)){
echo $m[1];
}
输出: 39.00好了,我来分解一下:
preg_match('/(['d'.]+)/', $string, $m)
preg_match是一个PHP函数,它允许我们使用正则表达式在给定的字符串中查找模式匹配。
本例中的正则表达式为:/(['d.]+)/
- /../是包含表达式 的分隔符。
- The(…)是一个组,在组中找到的任何匹配都存储在$m中。我们只有一个组(即只有一组括号),因此通过$m[1] 检索第一个组匹配。
- […]是一个字符类。
- 'd是所有数字字符的快捷键,0-9
- 。意思是字面意思。字符(使用'因为a转义)。正则表达式具有特殊的含义,但我们希望它表示文字。而不是它的特殊含义)
- 字符类后面的+ [..]]表示在一行中尽可能多地匹配类中的字符
在这个例子中$string的值被设置为¥39.00。你会想用$ret[0]代替我的例子中的$string。
$m是一个变量占位符,用于存储我们的组匹配(如上所述)
整个内容被包装在if语句中,因此如果找到模式匹配,您可以执行某些操作;如果没有,则执行其他操作。
进一步参考:
- http://php.net/manual/en/function.preg-match.php
- http://webcheatsheet.com/php/regular_expressions.php