如何查找以数字/小数/分数开头的所有单词出现

时间:2013-09-10 21:56:25

标签: php regex

我正在寻找一个正则表达式,它可以匹配前面带有数字(整数,小数或分数)加上0或更多空格的字符

e.g。

$str1="12.5km of road";
$str2="1/2 mile";
$str3="1 l milk";

例如,在$ str1的情况下,我需要类似的东西:

$searchString="km";
preg_match("/THE_REGEX_I_NEED".$searchString."/", $str1, $arrayOfMatches);

我不能胜任写正则表达式,所以任何帮助都会受到赞赏!

1 个答案:

答案 0 :(得分:2)

您可以使用:

$str1="12.5km of road";
if (preg_match_all('~\d+(?:[/.]\d+)?\s*(\S+)~', $str1, $arr))
   print_r($arr[1]);

编辑:要仅匹配已知字符串,请使用以下代码:

$str1="2 miles of road in 50 states";
if (preg_match_all('~\d+(?:[/.]\d+)?\s*(miles|km)\b~', $str1, $arr))
print_r($arr[1]);

输出:

Array
(
    [0] => miles
)