简单的Regexp与奇怪的回报

时间:2012-03-17 02:07:34

标签: php regex

我正在尝试从简单的正则表达式获取数据,但它返回奇数值。

我正在使用

/(.*) kbps \|/siU

使用以下数据解析页面:

<b>Bit Rate:</b>

             320 kbps |

我想要获得比特率。有什么建议吗?

最佳, 马特

1 个答案:

答案 0 :(得分:0)

<?php

$str = '<b>Bit Rate:</b>

             320 kbps |';

preg_match('#Bit Rate[^\d]+([\w\s]+\w)#msi', $str, $match);
var_dump($match[1]);

?>

// Output
string(8) "320 kbps"

这完全取决于正则表达式的强大程度。例如,以上内容将专门针对“比特率”之后的字流([A-Za-z0-9_])以及其间的至少一个非数字字符(标签的结尾,某些空格等)。 )[\w\s]+\w确保最后一个字符不是空格,但它可以包含空格直到最后一个字符。