PHP preg match - 带浮点值的正则表达式

Ste*_*Ste 1 php regex floating-point preg-match

有这个字符串:

$var = "30.5x120.8 (test desc here)";
Run Code Online (Sandbox Code Playgroud)

我需要用正则表达式输出30.5和120.8 ..任何帮助?谢谢

Nik*_*kiC 14

preg_match_all('~\d+(?:\.\d+)?~', $string, $matches);
var_dump($matches[0]);
Run Code Online (Sandbox Code Playgroud)


ale*_*lex 8

$var = "30x120 (test desc here)";

preg_match_all('/^(\d+)x(\d+)/', $var, $matches);

var_dump($matches)
Run Code Online (Sandbox Code Playgroud)

Ideone.

产量

array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(6) "30x120"
  }
  [1]=>
  array(1) {
    [0]=>
    string(2) "30"
  }
  [2]=>
  array(1) {
    [0]=>
    string(3) "120"
  }
}
Run Code Online (Sandbox Code Playgroud)

更新

也适用于17.5x17.5?

这是一个......

/^(\d+(?:\.\d+)?)x(\d+(?:\.\d+)?)/
Run Code Online (Sandbox Code Playgroud)

Ideone.