我正在寻找一个正则表达式,它可以匹配前面带有数字(整数、小数或分数)加 0 个或多个空格的字符
例如
$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);
我没有能力编写正则表达式,所以这里的任何帮助将不胜感激!
最佳答案
您可以使用:
$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
)
关于php - 如何查找前面有数字/小数/分数的单词的所有出现位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18729409/