简单的HTML解析器


Simple HTML Parser

<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语句中,因此如果找到模式匹配,您可以执行某些操作;如果没有,则执行其他操作。

进一步参考:

  1. http://php.net/manual/en/function.preg-match.php
  2. http://webcheatsheet.com/php/regular_expressions.php