我正在寻找一个正则表达式,它可以匹配前面带有数字(整数,小数或分数)加上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);
我不能胜任写正则表达式,所以任何帮助都会受到赞赏!
答案 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
)