Php 具有奇数返回的简单Regexp

Php 具有奇数返回的简单Regexp,php,regex,Php,Regex,我试图从一个简单的正则表达式中获取数据,但它返回的是奇数值 我正在使用 /(.*) kbps \|/siU 要分析包含以下数据的页面: <b>Bit Rate:</b> 320 kbps | 比特率: 320 kbps| 我正在尝试获取比特率。有什么建议吗 最好的, 马特 <?php $str = '<b>Bit Rate:</b> 320 kbps |'; preg_matc

我试图从一个简单的正则表达式中获取数据,但它返回的是奇数值

我正在使用

/(.*) kbps \|/siU
要分析包含以下数据的页面:

<b>Bit Rate:</b>

             320 kbps |
比特率:
320 kbps|
我正在尝试获取比特率。有什么建议吗

最好的, 马特


<?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"
//输出 字符串(8)“320 kbps”
这完全取决于正则表达式的健壮性。例如,上面将专门查找“比特率”后面的字流([a-Za-z0-9]),以及中间至少一个非数字字符(标记的结尾、一些空格等)。
[\w\s]+\w
确保最后一个字符不是空白,但它可以包含空白,直到最后一个字为止