我有一个总是具有以下格式的字符串
Text: 1.1111111 Text
我需要的是1.11
字符串
所以我选择了这个正则表达式
^(\S*\s)(\d.\d{2})
我已经使用http://regex101.com/来尝试它并且它在那里工作,但是当我在我自己的代码上执行它时,matches数组总是为空。
这是代码
//$ratingString = Durchschnittsbewertung: 4.65000 von 5 Sternen 20 Bewertungen Location bewerten
preg_match ( "/^(\S*\s)(\d.\d{2})/", $ratingString, $matches );
var_dump ( $matches );
// matches == array (0) {}
答案 0 :(得分:5)
你需要转义点,因为dot是正则表达式中的特殊字符,如果没有转义,则匹配任何字符:
^(\S*\s)(\d\.\d{2})
答案 1 :(得分:2)
上帝,所以在这里......抱歉编辑。像这样
$ratingString = "Durchschnittsbewertung: 4.65000 von 5 Sternen 20 Bewertungen Location bewerten";
preg_match ( "#(\d\.\d{2})#", $ratingString, $matches );
var_dump ( $matches );